Friday, 8 May 2009

commons-dbutils.jar

Post feito pelo Juliano Pacheco, grande amigo meu.


Dae pessoal,
descobri e comecei a utilizar a pouco esta biblioteca da apache, e ja estou muito satisfeito com o seu modo utilização e os resultados gerados.

O nome desta biclioteca é commons-dbutils.jar e faz parte do pacote commons da apache.

Esta é uma biblioteca muito boa que auxilia o desenvolvedor no trabalho com JDBC.

Por exemplo hoje em dia quando vamos fechar um ResultSet temos de:
colocar o mesmo dentro de um try/catch(ou propagar sua SQLException), verificar se o mesmo não esta nullo, e se ainda esta aberto,
e se cair nestas condições, então deveremos fecha-lo.

Teriamos então o seguinte código para um ResultSet rs:

try {
if(rs != null && !rs.isClosed()){
rs.close();
}
} catch (SQLException e) {
//REALIZA PROCEDIMENTOS CASO OCORRA ERRO
}

com isso temos de sempre estar duplicando este código, mesmo colocando ele apenas uma vez dentro do finally onde é realizada a consulta,
repetimos isso para todos os lugares onde usamos ResultSet.

Se utilizassemos a commons-dbutils,
teriamos de escrever apenas o seguinte código:

try {
DbUtils.close(rs);
} catch (SQLException e) {
//REALIZA PROCEDIMENTOS CASO OCORRA ERRO
}

ou seja com isso eliminamos a necessidade de estar escrevendo repetitivos condicionais para verificar se esta nullo ou se ja não esta fechado,
e se, utilizarmos o metodo closeQuietly(ResultSet rs), facaria assim:

DbUtils.closeQuietly(rs);

este metódo trata a pega a exception do ResultSet e caso aconteça algum alguma, ele ja a trata e não a propaga.
Desta forma ja conseguimos ver o grande ganho em termos de duplicação de código que podemos eliminar,
trocamos pelo menos seis linhas de código por apenas uma.

Ou seja o commons-dbutils, realmente é muito util.

Fora estes métodos exemplos que mostrei, ele possui outros método muito praticos,
inclusive este,

closeQuietly(Connection conn, Statement stmt, ResultSet rs)

que fecha e trata tudo, desde conexão até o resultSet.

Ele também possui metodos que mostram os erros e warnings, possui métodos de controle transacional e carregamento de driver.
Na verdade ele possui poucos métodos mas todos muito uteis.

Para quem quiser dar uma olhada segue o link da API:

http://commons.apache.org/dbutils/apidocs/org/apache/commons/dbutils/DbUtils.html

e aqui o link para a pagina do apache-commons que assim como o dbutils, possui varios outros utilitarios muito bons.

http://commons.apache.org/

Eu recomendo um leitura.

Feito por Juliano Pacheco.
Sun Certified Java Programmer (SCJP 5.0)

2 comments:

juliano pacheco said...

Bala o post neh Jeferson!hehe!

Realmente muito boa esta biblioteca!

Abraço!

Redação said...

Como na própria api diz "A collection of JDBC helper methods. This class is thread safe. "

Essa coleção de metodos utilitários ao desenvolvimento JDBC é utilizada em uma classe Thread safe, isso significa que os recursos das execuções são compartilhados de forma eficiente, de modo à obter maior performance e inteligência na reutilização de recursos lógicos e físicos.

Abraço - isaias www.polentero.com.br