JDBC 4.0

10 04 2007

Com a vinda do Java 6 agora no início de 2007, alguns novos features que (na minha opinião) já deveriam ter evoluído a tal ponto, enfim vieram. Uma dessas novidades agradáveis foi o JDBC 4.

As novas que a API traz:

  • Facilidades de conexão ao banco, com melhorias no DriverManager

A classe DriverManager agora não precisa mais que vc faça um loading explícito do Driver do seu SGBD. Se o driver estiver no classpath, DriverManager carrega o Driver pra vc. Então, dê adeus a ter de fazer

Class.forName("org.blablabla.tututu.Driver");
  • ResultSet mais flexível

Quem nunca sofreu quando começou a mexer com JDBC pra encontrar o número de linhas de um ResultSet, e se sentiu obrigado a usar um laço while condicionado a resultSet.next()??? O problema que acontecia era que o ResultSet (até o JDBC 3) tinha sentido de leitura, o que obrigava a após o next, não tinha como voltar no resultset. Agora, podemos fazer até last() e depois voltar pro primeiro registro, seguindo naturalmente na sequência.

  • Suporte ao SQL2003 que traz algumas atualidades, como por exemplo tipos XML

Para bancos que suportam XML como tipo de dados, agora foi criado no java o tipo SQLXML, pra receber esses dados.

  • DataBaseMetadata que cria uma interface independente de SGBD para recuperar Metadados.

Bem mais interessante que ter de construir selects específicos para cada SGBD.

Para aproveitar dos novos recursos da JDBC, é preciso que o driver (o arquivo jar) do seu banco seja tipo 4. Até agora, que eu conheça, tem a implementação de referência (que é outra novidade, agora java tem um SGBD padrão!) que é o Apache Derby, agora conhecido como JavaDB, e o MySQL. O Driver da oracle ainda não é JDBC4, porém existem dentro dele implementações de ResultSet e Connections específicas da Oracle, que podem dar vantagens semelhantes.
Especificação JDBC4: http://jcp.org/en/jsr/detail?id=221
What’s New in JDBC 4.0? http://today.java.net/pub/a/today/2007/04/10/whats-new-in-jdbc-40.html

Abraço,


Ações

Informações

Deixe um comentário