Note que no seu bloco finally, se o rs.close() gerar uma exce��o (o que deve ser rar�ssimo, pouco prov�vel, mas poss�vel.), a conex�o n�o ser� fechada. Normalmente, eu fa�o algo do tipo:
finally {
JDBCUtilities.silentClose( stmt );
JDBCUtilities.silentClose( co );
}
// JDBCUtilties - possui varios close() e silentClose() methods (para ResultSet, Statement, Connection
public void silentClose( Statement stmt ) {
if ( stmt != null ) {
try {
stmt.close();
} catch( SQLException exc ) {
logger.warn( "error closing Statement", exc );
}
}
}
Note tamb�m que � importante fechar o Statement, e n�o o ResultSet (voc� poderia fechar os dois, mas pela especifica��o, quando um Statement � fechado os ResultSets associados a ele tamb�m s�o).
Felipe
Mauro martini-at-floripa.com.br |Sou java| wrote:
Eu normalmente uso assim: Connection co = null; ResultSet rs = null; try { co = pegaConn(); rs = executaUmQuery(co); while (rs.next()) { ... } } catch (SQLException eSQL) { debug("deu pau na base"); } finally { if (rs != null) rs.close(); if (co != null) co.close(); } []s, ETA :-),
------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------
