Artigo Java Magazine 41 - JDBC de Ponta a Ponta: Parte 1

Artigo publicado pela Java Magazine edição 41.

Esse artigo faz parte da revista Java Magazine edição 41. Clique aqui para ler todos os artigos desta edição

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML. 

JDBC Ponta a Ponta

Parte 1:De conceitos essenciais a configurações e consultas

Aprenda os fundamentos de uma APIs mais importante do Java

 

A tecnologia de bancos de dados relacionais é talvez a mais importante em todos os tempos para os Sistemas de Informação. Os bancos de dados mais populares do mercado, desde bancos leves como o HSQLDB, passando pelos livres “convencionais” como MySQL até os pesos-pesados como Oracle são, com poucas exceções, banco de dados relacionais.Desde os primórdios do Java, a importância dos bancos de dados foi reconhecida,e a versão 1.1 do JDK já trazia como componente padrão a API JDBC.

Por meio do JDBC,uma aplicação Java pode se conectar a qualquer banco relacional,submeter comandos SQL para execução e recuperar os resultados gerados pela execução desses comandos.além disso,o JDBC permite acesso aos metadados do banco de dados (também conhecido como “catalogo”) permitindo a construção de ferramentas para administração do próprio banco e apoiando o desenvolvimento de sistemas.

Embora versões posteriores do Java tenham trazido alguns novos recursos ao JDBC (veja o quadro”Versões da API JDBC”),os recursos presentes já nas primeiras versões da API atendem plenamente às necessidades da maioria das aplicações,mesmo quando há demandas fortes de performance e de suporte a recursos avançados como dados multimídia.O melhor de tudo é que a compatibilidade retroativa foi preservado - ao contrário de APIs como Swing e coleções, que mudaram bastante do Java 1.1 para o Java 2.Então aplicações Java baseadas nas primeiras versões do JDBC não necessitam de modificações para adaptação a versões mais recentes da JVM ou do JDK.

Mesmo o desenvolvedor que utiliza mecanismo de persistência objeto-relacional como Hibernate e EJB 3,ou que a prefere frameworks relacionais como iBatis ou Spring JDBC (veja links) necessita de um conhecimento  abrangente da API JDBC e de conceitos de bancos de dados relacionais em geral.Afinal, todos esses frameworks e bibliotecas usam o JDBC como base para comunicação com banco de dados.

Esta série sobre JDBC atende a dois públicos distintos.Para os iniciantes,que nunca tiveram contato com o JDBC,esta primeira parte apresenta os fundamentos da API.Já para os desenvolvedores com alguma experiência prévia com JDBC,a segunda parte,na próxima edição,apresenta recursos que fazem a diferença entre uma aplicação “de brinquedo” e uma aplicação profissional como transações,o uso de PreparedStatements,e dicas de segurança.

Os exemplos serão todos executados sobre o HSQLDB, para que não seja necessário instalar e administrar um banco mais sofisticado.Mas funcionam sem alterações em qualquer outro banco de dados – foram testados MySQL,PostgreSQL,FireBird e Oracle.Como não haveria espaço suficiente para apresentar os procedimentos para inicialização de todas esses bancos,nesta parte focamos no HSSQLDB, e na segunda mostraremos como executar os exemplos (das duas partes) no MySQL e PostgreSQL,os dois bancos de dados livres mais populares.

 

Drivers JDBC

Para acessar um banco relacional, uma aplicação Java necessita,além da própria máquina virtual, de um driver JDBC.Este driver é em geral fornecido junto com o banco de dados ou com um download separados pelo próprio fornecedor do banco,sem custo adicional.

Se você vem de outros ambientes, como VB e o Delphi, vai se surpreender ao descobrir que o JDBC não necessita de nenhuma configuração prévia, nem que seja instalado um cliente nativo do banco de dados para funcionar. Drivers JDBC são na grande maioria simples biblioteca Java – arquivo JAR que podem ser copiados para qualquer sistema operacional. Não há necessidade de editar arquivos de configuração nem de executar algum painel de controle administrativo.

 

Ø“Drivers JDBC escritos inteiramente em Java são conhecidos como drivers Tipo 4 (Type 4).”

 

Existem no mercado alguns drivers que utilizam códigos nativo (via JNI) para aproveitar código dos clientes nativos proprietários do banco de dados. Mas eles em geral têm performance inferior, e são mais pesados e menos estáveis do que os escritos inteiramente em Java para o mesmo banco.

Drivers que usam códigos nativos têm o overhead de traduzir objetos Java para estruturas de dados e tipos nativos do sistema operacional. Já drivers puro-Java pode usufruir dos recursos avançados de conectividade de rede, gerência de memória e segurança embutidas no Java.

A Figura 1 compara um driver JDBC escrito inteiramente em Java com drivers que usam códigos nativo. A mesma figura compara drivers JDBC com mecanismo nativo de acesso a bancos de dados, tomando como referencia o popular ODBC do Windows.É utilizado como exemplo o driver JDBC do Oracle.A figura ficaria praticamente igual se em vez de ODBC fosse utilizado o dbExpress do Delphi, o ADO.NET da Microsoft,ou tecnologia similares.

Para compilar uma aplicação Java que acessa um banco de dados via JDBC,não é necessário ter nenhum drivers JDBC, não é necessário ter nenhum driver JDBC instalado nem configuração no seu IDE.Mas para executar a aplicação,as classes do driver devem estar no classpath.Isto significa que uma mesma aplicação pode ser executada utilizando qualquer banco de dados que deseje, contanto que a aplicação seja escrita usando apenas comando SQL padronizados,ou então encapsulando com cuidado comandos que utilizam sintaxes proprietárias de cada banco." [...] continue lendo...

Artigos relacionados