ホームページ > データベース > mysql チュートリアル > プールされた JDBC 接続を閉じるべきですか?

プールされた JDBC 接続を閉じるべきですか?

Mary-Kate Olsen
リリース: 2024-12-03 22:19:14
オリジナル
941 人が閲覧しました

Should I Close Pooled JDBC Connections?

プール内の 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 リソースを閉じてください。 -with-resources ステートメントまたはfinally ブロック内。
  • 確立するために DriverManager を使用することは避けてください。接続プールを使用している場合は、手動で接続します。

以上がプールされた JDBC 接続を閉じるべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート