JDBCトランザクションのロールバック方法【Javaサンプルコード付き】
JDBCでは、トランザクションをロールバックするには、Connectionオブジェクトのrollback()メソッドを使用します。具体的な手順は以下の通りです。
- 最初に、Connectionオブジェクトを作成する際に、自動コミットがfalseに設定されていることを確認してください。つまり、connection.setAutoCommit(false)を設定してください。
- SQL文を実行する前にトランザクションを開始する必要があります。connection.setAutoCommit(false)を使用して自動コミットを無効にすることができます。
- 異常が発生した場合やトランザクションをロールバックする必要がある場合は、connection.rollback()メソッドを呼び出してください。
- 必要であれば、手動でトランザクションをコミットするためにconnection.commit()メソッドを呼び出すことができます。
- 最後に、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();
}