Zdravím.
Na stránce:
http://tomcat.apache.org/tomcat-5.0-doc/jndi-datasource-examples-howto.html
je ukázka doporučeného kódu pro práci s Connection v kontejneru Tomcatu a musím
říct, že je to poměrně složitý postup (viz konec příspěvku).
Chtěl bych použít něco, co to zjednoduší, přemýšlel jsem o Jakrta Commons -
DBUtils, jenže je tam jedna věc, které se bojím.
V té doporučené ukázce zavírají Connection na konco výkonného bloku a pak ještě
ve finally bloku.
Jaký je rozdíl mezi:
try {
conn.close()
} finnaly {
conn.close()
}
a
try {
} finnaly {
conn.close()
}
Tedy když se vynechá to uzavření ve výkonné části? Nebude pak docházet k
vyčerpání zdrojů?
DBUtills veškeré uzavírání provádí právě až ve finnaly bloku.
Nebo existuje nějaké lepší řešení než DBUtils? Mě se tohle líbí právě pro svou
jednoduchost, nepotřebuji na to 10 MB knihoven.
Ukázka doporučeného použiti Connection v Tomcat kontejner:
Connection conn = null;
Statement stmt = null; // Or PreparedStatement if needed
ResultSet rs = null;
try {
conn = ... get connection from connection pool ...
stmt = conn.createStatement("select ...");
rs = stmt.executeQuery();
... iterate through the result set ...
rs.close();
rs = null;
stmt.close();
stmt = null;
conn.close(); // Return to connection pool
conn = null; // Make sure we don't close it twice
} catch (SQLException e) {
... deal with errors ...
} finally {
// Always make sure result sets and statements are closed,
// and the connection is returned to the pool
if (rs != null) {
try { rs.close(); } catch (SQLException e) { ; }
rs = null;
}
if (stmt != null) {
try { stmt.close(); } catch (SQLException e) { ; }
stmt = null;
}
if (conn != null) {
try { conn.close(); } catch (SQLException e) { ; }
conn = null;
}
}
Datum: 12:59:44 19. února 2006
--
---------------------------------------------------------------------
Tomáš Procházka
E-mail: [EMAIL PROTECTED]
WWW: http://atom.sf.cz
ICQ: 87147320
---------------------------------------------------------------------