Javaを使用して手動でトランザクションをコミットする方法
Javaでは、トランザクションの手動コミットは、以下の手順で実現します。
1. データベース接続オブジェクトを取得します。JDBCまたは接続プールを使用してデータベース接続オブジェクトを取得します。
“`java
Connection connection = DriverManager.getConnection(url, username, password);
“`
2. 自動コミットをfalseに設定します。既定では、JDBC接続はトランザクションを自動的にコミットします。この設定を手動コミットに変更する必要があります。
“`java
connection.setAutoCommit(false);
“`
3. SQL ステートメントを実行します。`Statement` または `PreparedStatement` オブジェクトを使用して、データベース操作を実行します。
“`java
statement.executeUpdate(sql);
“`
4. トランザクションをコミットします。`commit` メソッドを使用して、手動でトランザクションをコミットします。
“`java
connection.commit();
“`
5. 例外を捕捉し、トランザクションをロールバックします。例外が発生した場合は、`catch` ブロックで例外を捕捉し、`rollback` メソッドを呼び出してトランザクションをロールバックします。
“`java
connection.rollback();
“`
6. 接続を閉じます。トランザクションをコミットまたはロールバックした後、データベース接続を閉じます。
“`java
connection.close();
“`
以下に、完全なサンプルを示します。
try {
// 获取数据库连接对象
Connection connection = DriverManager.getConnection(url, username, password);
// 设置自动提交为false
connection.setAutoCommit(false);
// 执行SQL语句
Statement statement = connection.createStatement();
statement.executeUpdate(sql);
// 提交事务
connection.commit();
// 关闭连接
connection.close(); } catch (SQLException e) {
// 发生异常时回滚事务
connection.rollback();
e.printStackTrace();
// 关闭连接
connection.close(); }
手動でトランザクションをコミットする際には、異常が発生した場合に正しくロールバックされ、異常が発生したかどうかに関わらず、データベース接続が確実に閉じられるようにする必要があります。