JDBCトランザクションのロールバック方法【Javaサンプルコード付き】

JDBCでは、トランザクションをロールバックするには、Connectionオブジェクトのrollback()メソッドを使用します。具体的な手順は以下の通りです。

  1. 最初に、Connectionオブジェクトを作成する際に、自動コミットがfalseに設定されていることを確認してください。つまり、connection.setAutoCommit(false)を設定してください。
  2. SQL文を実行する前にトランザクションを開始する必要があります。connection.setAutoCommit(false)を使用して自動コミットを無効にすることができます。
  3. 異常が発生した場合やトランザクションをロールバックする必要がある場合は、connection.rollback()メソッドを呼び出してください。
  4. 必要であれば、手動でトランザクションをコミットするためにconnection.commit()メソッドを呼び出すことができます。
  5. 最後に、Connectionオブジェクトを閉じる際には、connection.setAutoCommit(true)を呼び出して自動コミットをtrueに設定することを忘れずに。

以下はサンプルコードです:

// 创建Connection对象
Connection connection = DriverManager.getConnection(url, username, password);

// 关闭自动提交
connection.setAutoCommit(false);

// 开启事务
try {
    // 执行SQL语句
    // 如果出现异常,可以调用connection.rollback()进行回滚
    // connection.rollback();

    // 提交事务
    connection.commit();
} catch (SQLException e) {
    // 出现异常时回滚事务
    connection.rollback();
    e.printStackTrace();
} finally {
    // 关闭Connection对象时,将自动提交设置回true
    connection.setAutoCommit(true);
    connection.close();
}
bannerAds