The closing statements at the finally clause assures you the db resources
are released even when an exception is thrown.
This is a good practice, just imagine what will happen using the next code:
try{
conn =
DriverManager.getConnection(jdbc:apache:commons:dbcp:example);
stmt = conn.createStatement();
rset = stmt.executeQuery(args[1]);
int numcols = rset.getMetaData().getColumnCount();
while(rset.next()) {
for(int i=1;i=numcols;i++) {
System.out.print(\t + rset.getString(i));
}
System.out.println();
}
try { rset.close(); } catch(Exception e) { }
try { stmt.close(); } catch(Exception e) { }
try { conn.close(); } catch(Exception e) { }
} catch(SQLException e) {
e.printStackTrace();
}
If an exception occurs in one iteration, you will never release the db
resources (the close statements will never be reached).
I hope it helps you.
Regards,
Alfredo Ledezma Meléndez.
Gerencia Implantación S.A.P.
Supervisor Técnico WEB-ABAP
Radiomóvil DIPSA, S. A. de C. V.
Lago Alberto No. 366, Col. Anáhuac, C.P. 11320
México D.F.
-Original Message-
From: Tahir Akhtar [mailto:[EMAIL PROTECTED]
Sent: Jueves, 15 de Junio de 2006 10:10 a.m.
To: 'Jakarta Commons Users List'; [EMAIL PROTECTED]
Subject: RE: DBCP - Why we close connection
When you get connection with this line
DriverManager.getConnection(jdbc:apache:commons:dbcp:example);
You are actually getting a connection wrapped in dbcp wrapper. When you
call
close, the wrapper method close is called instead of close on actual db
driver. This wrapper releases the connection instead of closing it.
Regards,
Tahir
-Original Message-
From: Jawed Nazar Ali [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 15, 2006 8:01 PM
To: commons-user@jakarta.apache.org
Subject: DBCP - Why we close connection
Hello,
try {
conn =
DriverManager.getConnection(jdbc:apache:commons:dbcp:example);
stmt = conn.createStatement();
rset = stmt.executeQuery(args[1]);
int numcols = rset.getMetaData().getColumnCount();
while(rset.next()) {
for(int i=1;i=numcols;i++) {
System.out.print(\t + rset.getString(i));
}
System.out.println();
}
} catch(SQLException e) {
e.printStackTrace();
} finally {
try { rset.close(); } catch(Exception e) { }
try { stmt.close(); } catch(Exception e) { }
try { conn.close(); } catch(Exception e) { }
}
Why we close conn at the end, I don't understand this. Any explanation?
Regards,
Jawed Nazar Ali
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.4/364 - Release Date: 6/14/2006
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.4/364 - Release Date: 6/14/2006
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Este mensaje es exclusivamente para el uso de la persona o entidad a quien esta
dirigido; contiene informacion estrictamente confidencial y legalmente
protegida, cuya divulgacion es sancionada por la ley. Si el lector de este
mensaje no es a quien esta dirigido, ni se trata del empleado o agente
responsable de esta informacion, se le notifica por medio del presente, que su
reproduccion y distribucion, esta estrictamente prohibida. Si Usted recibio
este comunicado por error, favor de notificarlo inmediatamente al remitente y
destruir el mensaje. Todas las opiniones contenidas en este mail son propias
del autor del mensaje y no necesariamente coinciden con las de Radiomovil
Dipsa, S.A. de C.V. o alguna de sus empresas controladas, controladoras,
afiliadas y subsidiarias. Este mensaje intencionalmente no contiene acentos.
This message is for the sole use of the person or entity to whom it is being
sent. Therefore, it contains strictly confidential and legally protected
material whose disclosure is subject to penalty by law. If the person reading
this message is not the one to whom it is being sent and/or is not an employee
or the responsible agent for this information, this person is herein notified
that any unauthorized dissemination, distribution or copying of the materials
included in this facsimile is strictly prohibited. If you received this
document by mistake please notify immediately to the subscriber and destroy
the message. Any opinions contained in this e-mail are those of the author of
the message and do not necessarily coincide