domingo, 11 de agosto de 2013

JDBC



Tipos de Drivers

Tipo 1: Ponte JDBC-ODBC

É o tipo mais simples mas restrito à plataforma Windows. Utiliza ODBC para conectar-se com o banco de dados, convertendo métodos JDBC em chamadas às funções do ODBC. Esta ponte é normalmente usada quando não há um driver puro-Java (tipo 4) para determinado banco de dados, pois seu uso é desencorajado devido à dependência de plataforma.

Tipo 2: Driver API-Nativo

O driver API-Nativo traduz as chamadas JDBC para as chamadas da API cliente do banco de dados usado. Como a Ponte JDBC-ODBC, pode precisar de software extra instalado na máquina cliente.

Tipo 3: Driver de Protocolo de Rede

Traduz a chamada JDBC para um protocolo de rede independente do banco de dados utilizado, que é traduzido para o protocolo do banco de dados por um servidor. Por utilizar um protocolo independente, pode conectar as aplicações clientes Java a vários bancos de dados diferentes. É o modelo mais flexível.

Tipo 4: Driver nativo

Converte as chamadas JDBC diretamente no protocolo do banco de dados. Implementado em Java, normalmente é independente de plataforma e escrito pelos próprios desenvolvedores. É o tipo mais recomendado para ser usado.

Driver API-Nativo

Antes de mais nada deveremos instalar o drive nativo:

Numero aplicação J2EE utilizando tomcat basta descompactar e jogar o arquivo no diretório \common\lib do tomcat.

Para acesso via aplicação J2SE, basta acrescentar o caminho completo do drive na CLASSPATH.

Exemplo Query (Consulta)

 

String driver      = “jdbc:postgresql://3.3.3.132:5432/teste”;
String user        = “teste”;
String senha      = “teste”;
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection(driver,user,senha);                 
Statement st = con.createStatement();                                  

ResultSet rs = st.executeQuery("select * from stsip_etr");
            while (rs.next())
                        retorno+= String.valueOf(rs.getString(1));
rs.close();                 
st.close();
con.close();

Exemplo Execução (alteração e deleçao)

String driver      = “jdbc:postgresql://3.3.3.132:5432/teste”;
String user        = “teste”;
String senha      = “teste”;
Class.forName("org.postgresql.Driver");          
Connection con = DriverManager.getConnection(driver,user,senha);                                        
Statement st = con.createStatement();
st.executeUpdate(sql);  
st.close();
con.close();

Exemplo de PreparedStatement

String driver      = “jdbc:postgresql://3.3.3.132:5432/teste”;
String user        = “teste”;
String senha      = “teste”;
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection(driver,user,senha); 
PreparedStatement pSmt = conn.preparedStatement(SQL);
pSmt.setString(1,”manoel”)
pSmt.setInt(2,32)
int retorno= pSmt.executeUpdate();

ResultSetMetaData

Obtem informaçoes sobre o resultset de uma pesquisa, como por exemplo a quantidade de colunas.

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
boolean b = rsmd.isSearchable(1);


Ponte JDBC-ODBC

 
E apenas inserir em DriverManager.getConnection :

Jdbc:odbc:[nome do driver odbc], Ex:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                       
Connection con = DriverManager.getConnection("JDBC:ODBC:audioteca");                                             
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from Interpretes");
         while (rs.next()){
            System.out.println(rs.getString("interprete"));
}

Retornando o numero de linhas em uma pesquisa SQL...


 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_READ_ONLY);
stmt.executeQuery(sql);
 
rs.last();               
int rows = rs.getRow();        

rs.beforeFirst();

 

Nenhum comentário:

Postar um comentário