2

BoneCP接続プールを使用しているときに、次の混乱に遭遇しました。これに関するアドバイスを聞きたいと思います。

  • getConnectionBoneCPのメソッドはスレッドセーフですか?並列接続を要求するスレッドが多数ある場合に、これを使用するための最良の方法は何ですか?
  • connection.close()接続を使用した後、毎回呼び出す必要がありますか?
  • 呼び出す必要がある場合、それはconnection.close()本当にDBとの接続を切断しますか、それとも単に接続をプールに送信しますか?

よろしくお願いします。

4

1 に答える 1

9

getConnection()BoneCPのはスレッドセーフです; だからあなたは自分で何もする必要はありません。はい、接続が完了したら呼び出す必要がありconnection.close()ます(これは、BoneCPに固有のものではありませんが、すべてのJDBC接続に適用されます)。

すべての接続プールと同様に、呼び出しconnection.close()は接続を接続プールに返すか、場合によっては物理接続も閉じます(ただし、実際には、これは実装の詳細であり、心配する必要はありません)。

一般に、接続プールはデータベースへの物理接続のプールを維持します。を呼び出すgetConnection()と、接続プールは使用可能な物理接続を探し、それを論理接続でラップします。この論理接続が返されます。論理接続の場合close()、接続プールは、物理接続が再利用可能であることを認識します。

于 2011-11-01T12:11:06.437 に答える