プール内の 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 は、メソッド内ではなく、アプリケーションの起動時に 1 回初期化する必要があります。さらに、同期や null チェックも不要です。このメソッドは、単純に DataSource を 1 回検索し、そこから一貫して接続を返す必要があります。
追加の考慮事項:
以上がプールされた JDBC 接続を閉じるべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。