java 手动提交事务
时间: 2023-07-06 09:16:22 浏览: 99
在 Java 中手动提交事务需要使用事务管理器。以下是一个示例代码:
```
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = dataSource.getConnection();
conn.setAutoCommit(false); // 禁用自动提交事务
stmt = conn.prepareStatement("UPDATE users SET name = ? WHERE id = ?");
stmt.setString(1, "John");
stmt.setInt(2, 1);
stmt.executeUpdate();
conn.commit(); // 提交事务
} catch (SQLException e) {
if (conn != null) {
try {
conn.rollback(); // 回滚事务
} catch (SQLException ex) {
ex.printStackTrace();
}
}
e.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
```
在上面的代码中,我们使用 `Connection` 对象来管理事务。首先,我们通过 `dataSource.getConnection()` 方法获取一个连接对象。然后,我们禁用自动提交事务并创建一个 `PreparedStatement` 对象来执行 SQL 语句。如果执行成功,我们调用 `conn.commit()` 方法手动提交事务。如果出现异常,我们调用 `conn.rollback()` 方法回滚事务。最后,我们关闭连接和语句对象。
需要注意的是,在手动提交事务时,一定要记得禁用自动提交事务,否则事务会自动提交。同时,也要记得在出现异常时回滚事务,否则事务会一直处于未提交状态。
阅读全文