在JDBC literatur我经常遇到像方法终止时是否需要关闭连接和语句?
void databaseCall() {
Connection con = null;
Statement statement = null
try {
con = getConnection(...);
statement = con.createStatement(...);
// do some query
} catch (SQLException e) {
// bla bla
} finally {
try {con.close();} catch (Exception e1) {}
try {statement.close();} catch (Exception e1) {}
}
}
片断我知道这是最好的做法,关闭连接和语句明确地,但是,在这种情况下,显然是资源con
和statement
会时结束该方法被关闭,即当try
块完成时。 finally
区块中的close
声明真的有必要吗?即使我们没有明确地释放资源,当方法结束时它们不会被关闭吗?
你应该把'close()'调用到'finally'块中。如果你没有正确地关闭资源,即使客户端程序已经完成,某些DBMS也会保留这些东西。 – 2012-08-01 11:10:00
谢谢。纠正。 – gefei 2012-08-01 11:12:50
@ G.Z。类似于你的疑问被解释[这里](http://stackoverflow.com/questions/11750708/statement-and-resultset-close-after-connection-close) – user75ponic 2012-08-01 12:09:31