Artigo da SQL Magazine 29 - Introdução ao JDBC

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo da SQL Magazine - edição 29.

minha

Clique aqui para ler todos os artigos desta edição

Introdução ao JDBC

Jair Elton Batista de Souza

Os bancos relacionais são uma realidade já há um bom tempo. Desta forma, é essencial que qualquer linguagem de programação de peso faça acesso a esses bancos. Foi pensando nisso que a Sun Microsystems introduziu a API JDBC (Java Database Connectivity) no JDK. Este artigo tem o objetivo de mostrar o uso desta tecnologia: como consultar bancos de dados, executar alterações e stored procedures, e muito mais.

Como funciona

JDBC é semelhante ao ODBC, e no principio usava justamente ODBC para conectar-se com o banco de dados. A partir de um código nativo as aplicações Java podiam utilizar qualquer banco de dados que tivesse um driver ODBC disponível. Isso contribuiu bastante para a popularização do JDBC uma vez que existe um driver ODBC para praticamente qualquer banco de dados de mercado.

Assim como ODBC, JDBC também funciona através de drivers que são responsáveis pela conexão com o banco e execução das instruções SQL. Esses drivers foram divididos em quatro tipos (ver Figura 1):

·         JDBC tipo 1: foi o primeiro tipo a ser criado, não faz uma conexão real com o banco de dados, mas sim uma conexão com ODBC. Não é muito utilizado hoje em dia por ser escrito em linguagem nativa, o que sacrifica a portabilidade e exige configuração extra no cliente. Ele é composto pelas classes do pacote sun.jdbc.odbc e uma biblioteca de código nativo (não é necessário acessá-la diretamente). Não utilize esse tipo de driver caso tenha outra opção.

·         JDBC tipo 2: esse tipo de driver eliminou a dependência de ODBC, mas ainda é escrito em linguagem nativa, esse código nativo permite fazer chamadas a uma API cliente do SGBD. Também é necessária a instalação de bibliotecas de código nativo na máquina onde o sistema será executado, assim como o tipo 1. Esse tipo de driver também não é portável.

·         JDBC tipo 3: totalmente escrito em Java, eliminou a necessidade de bibliotecas de código nativo favorecendo a portabilidade. Esse tipo de driver permite a conversão de chamadas JDBC em chamadas a um protocolo de rede genérico que então pode ser convertido a chamadas à API específica do SGBD.

·         JDBC tipo 4: também totalmente escrito em Java, utiliza o protocolo de rede proprietário do SGBD, convertendo as chamadas JDBC para chamadas diretas ao SGBD dispensando uma API cliente intermediaria.

 

Verifique o tipo do driver na documentação do mesmo.

 

Figura 1. Tipos de drivers JDBC.

 

image002.gif

Esses drivers são implementações das interfaces do pacote java.sql. Geralmente são disponibilizados na forma de um arquivo JAR (Java ARchive) pelo fabricante do banco de dados ou terceiros. Você pode encontrar drivers JDBC em www.oracle.com (Oracle DB), www.mysql.org (MySQL), www.microsoft.com.br (SQLServer), www.ibm.com.br (DB2), etc. Ou consultar a base de dados de drivers certificados da Sun em http://developers.sun.com/product/jdbc/drivers.

Após fazer o download do driver, basta adicioná-lo ao CLASSPATH (ler Nota 1). A partir daí está tudo pronto para você acessar o banco de dados via Java, como veremos abaixo.

 

Nota 1. IDE e CLASSPATH

 A maioria dos IDE’s ignoram a variável de ambiente CLASSPATH e utilizam uma forma própria de gerenciar as classes usadas pelo projeto (nesse caso é necessário adicionar o driver ao projeto).

No eclipse (ver Figura 2): clique com o botão direito no projeto, vá em “Properties”, selecione “Java Build Path” na árvore esquerda, clique na aba “Libraries”, clique no botão “Add External JARs”, selecione o arquivo JAR do driver e clique em “OK”.

 

 

Figura 2. Eclipse.

 

image004.jpg 

 

Para o NetBeans (ver Figura 3): clique com o botão direito no projeto, vá em “Properties”, selecione “Libraries” na árvore esquerda, clique na aba “Compile”, clique no botão “Add JAR/Folder”, selecione o arquivo JAR do driver e clique em “OK”.

 

Figura 3. NetBeans.

 

image006.jpg 

Para outros IDE’s consulte a documentação específica.

Carregando um driver

Obtenha as classes do driver e adicione-as ao CLASSPATH. Nesse artigo utilizaremos o MySQL 5.0, tanto o SGBD quanto o driver podem ser obtidos em www.mysql.org e são open-source. Adicione o arquivo JAR ao CLASSPATH como na Figura 4.

 

Figura 4. Configurando o CLASSPATH.

 

image007.jpg 

Como vimos, JDBC é baseada em drivers. Para funcionar, esses drivers precisam estar carregados na memória. Quem gerencia esse carregamento é a classe java.sql.DriverManager: ao ser instanciado, o driver se registra nela e a partir daí já podem ser criadas conexões utilizando-o. Os métodos registerDriver(Driver driver) e deregisterDriver(Driver driver) são utilizados para registrar ou remover o registro de um driver, mas a menos que você esteja desenvolvendo seu próprio driver, não é necessário preocupar-se com esses métodos.

Para carregar um driver utilize o método forName(String name) da classe java.lang.Class. Esse método solicita ao ClassLoader o carregamento da classe especificada por “name”, no nosso caso ficaria assim:

 

try{

     Class.forName(“com.mysql.jdbc.Driver”);

}catch(ClassNotFoundException cnfe){

    cnfe.printStackTrace();

}

 

A partir de agora o driver está registrado e já podemos utilizá-lo para abrir uma conexão.

Obtendo uma conexão

Uma conexão é representada pela interface java.sql.Connection. É necessário um objeto de uma classe que implemente essa interface (essa classe é fornecida pelo driver, mas você não precisa se preocupar com ela).

A classe DriverManager possui alguns métodos getConnection(), que são responsáveis por procurar dentre os drivers carregados um que seja compatível com a URL fornecida e solicitar a ele que abra uma conexão.

A URL à qual me referi acima é basicamente o caminho do banco de dados, e tem o seguinte formato:"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?