sql >> データベース >  >> RDS >> Mysql

プール内のJDBC接続を閉じる

    接続プールを使用する場合、最後に接続を閉じる必要がありますか?もしそうなら、プーリングの目的は失われていませんか?そうでない場合、データソースは、Connectionの特定のインスタンスが解放され、再利用できることをどのように知るのでしょうか。私はこれについて少し混乱しています、どんなポインタもありがたいです。

    はい、確かにプールされた接続も閉じる必要があります。これは、実際には実際の接続のラッパーです。それはカバーの下で実際の接続をプールに解放します。実際の接続が実際に行われるかどうかを決定するのは、さらにプール次第です。 閉じられるか、新しいgetConnection()に再利用されます 電話。したがって、接続プールを使用しているかどうかに関係なく、常に finallyですべてのJDBCリソースを逆の順序で閉じます tryのブロック それらを取得した場所をブロックします。 Java 7では、 try-with-resources ステートメント。

    次の方法は標準に近いものですか?プールから接続を取得しようとしているように見えます。データソースを確立できない場合は、昔ながらのDriverManagerを使用してください。実行時にどの部分が実行されているのかさえわかりません。上記の質問を繰り返しますが、そのような方法から出てくる接続を閉じる必要がありますか?

    例はかなり怖いです。 DataSourceを検索/初期化する必要があります アプリケーション全体のDB構成クラスのコンストラクター/初期化でのアプリケーションの起動中に1回だけ。次に、getConnection()を呼び出すだけです。 アプリケーションの残りの存続期間を通じて、1つの同じデータソースで。同期やヌルチェックは必要ありません。

    関連項目:



    1. 初心者向けのSQLServer2016での全文検索の実装

    2. Oracle:シーケンスMySequence.currvalはこのセッションではまだ定義されていません

    3. CASTとIsNumeric

    4. RMANバックアップコマンド