關閉池中的 JDBC 連線
問題:使用連線池時是否應該關閉 JDBC 連線?如果是這樣,那不是違背了池化的目的嗎?
答案:是的,應該關閉池化連接。關閉池連線會將底層連線釋放回池中。
連線池會追蹤哪些連線正在使用以及哪些連線空閒。當連線關閉時,池將其識別為可供重複使用。
問題:以下方法是否適合從池或 DriverManager 取得連線?
public Connection getConnection(boolean pooledConnection) throws SQLException { if (pooledConnection) { if (ds == null) { try { ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/NamedInTomcat"); return ds.getConnection(); } catch (NamingException e) { e.printStackTrace(); } } return (ds == null) ? getConnection(false) : ds.getConnection(); } return DriverManager.getConnection("jdbc:mysql://..." + dbName, uName, pWord); }
答案:不建議使用該程式碼。 DataSource 應在應用程式啟動期間初始化一次,而不是在方法中初始化。此外,同步和空檢查是不必要的。該方法應該簡單地查找 DataSource 一次並一致地返回連接。
其他注意事項:
以上是我應該關閉池化 JDBC 連線嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!