2013-01-15 154 views
2

到目前爲止,所有我見過的JDBC代碼創建和每次關閉連接。然而,我想知道如果這是必要的,因爲我的代碼似乎工作得很好,我每次都重複使用相同的連接:你應該總是關閉連接嗎?

這是一個不好的方法嗎?

public static int getCount() { 
    synchronized (DATABASE_ACCESS_LOCK) { 
     try (ResultSet rs = QUERY.executeQuery("SELECT COUNT(1) FROM " + TABLE_CLIENTS)) { 
      return rs.getInt(1); 
     } catch (SQLException ex) { 
      ex.printStackTrace(); 
      return -1; 
     } 
    } 
} 

回答

4

當你離開工作的活動範圍通常你應該釋放你的數據庫連接。數據庫連接是昂貴的資源。把它們放在不必要的時間使得連接池管理器的工作變得更加困難。

如果要執行幾個DB操作起來還是比較合理使用所有這些操作的相同數據庫連接。一旦這一組操作完成,釋放連接。

+0

當你說昂貴的資源,你到底是什麼意思? – rtheunissen

+1

@偏執 - 機器人確切說,他們佔用內存,並且可以佔用其他資源,如插座和CPU週期。這是一個權衡,之類的東西,在創建連接時,通過保持連接打開的費用,你正在使用它的金額的費用。還有在數據庫服務器上的漏電,因爲它需要維護有關的連接狀態信息(以及所有的基礎要求,比如插座) – MadProgrammer

相關問題