2

接続プールを使用する場合、接続のautocommit = falseを設定すると、この接続にのみ影響しますか?

autocommit = trueを設定せずにこの接続を閉じて新しい接続を取得した場合、この接続のポリシーはautocommit = trueに設定されますか?

4

2 に答える 2

2

その答えは、「使用する接続プールに依存する」ということです。

ただし、接続プールの場合は、初期構成に従って自動コミット状態を復元します。他の接続プールでも同じことができると思います。

于 2011-01-27T23:13:53.383 に答える
0

テスト シナリオ:

  1. autocommit=false に設定
  2. トランザクションを使用する
  3. autocommit=true に戻さずに接続を閉じる

結果:この特定の接続を再利用しても、autocommit=falseのままです (他の新しい接続のデフォルトの autocommit=true)。したがって、データベース側でこの接続を切断してコードを再度呼び出すと、プールはデフォルトの autocommit=true で新しい接続を提供します。

結論:この接続のみに影響しますが、閉じる前に必ず autocommit=true に設定してください! (これは実際のテストに基づいており、仮定ではありません)

注: この動作はここにも記載されています: http://www.coderanch.com/t/583969/JDBC/databases/Tomcat-connection-pool-auto-commit

Tomcat7、Java 1.7、MySQL5.6、Connector/J 5.1 で JDBC を使用しています。

于 2015-03-05T08:00:06.513 に答える