在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