1. ホーム
  2. java

JDBCでトランザクションを開始する方法は?

2023-09-22 23:01:45

質問

Connection.setTransactionIsolation(int) を警告します。

注意:このメソッドがトランザクション中に呼び出された場合、その結果は実装で定義されます。

これは問題を提起します。 JDBCでどのようにトランザクションを開始するのですか? トランザクションを終了させる方法は明確ですが、開始させる方法は不明です。

もし Connection がトランザクションの内部で始まっている場合、どのようにして Connection.setTransactionIsolation(int) をトランザクションの外側で呼び出して、実装固有の挙動を回避することはできますか?

どのように解決するのですか?

自分自身の質問に答える。

  • JDBC 接続 で開始します。 自動コミットモードが有効 で開始され、各 SQL 文は暗黙のうちにトランザクションで区分けされます。
  • トランザクションごとに複数のステートメントを実行したいユーザーは 自動コミット .
  • 自動コミットモードを変更すると、現在のトランザクションのコミットがトリガーされます(アクティブである場合)。
  • Connection.setTransactionIsolation() は、自動コミットが有効であれば、いつでも呼び出すことができます。
  • auto-commitが無効の場合。 Connection.setTransactionIsolation() はトランザクションの前か後にしか起動できません。トランザクションの途中でそれを起動すると、未定義の動作になります。

参照 JDBCチュートリアル を参照してください。