- 在
Connection对象上调用setAutoCommit(false)方法,将自动提交关闭。 - 执行业务逻辑。
- 在
finally块中调用Connection对象的commit()方法提交事务,或者调用Connection对象的rollback()方法回滚事务。 以下是一个简单的示例:
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
connection.setAutoCommit(false);
try {
// 执行业务逻辑
connection.commit();
} catch (Exception e) {
connection.rollback();
} finally {
connection.close();
}
在 Java 中,可以使用 @Transactional 注解来简化事务的编写。使用 @Transactional 注解时,只需要在方法上添加 @Transactional 注解,就可以开启事务,并且在方法执行完毕后,会自动提交或回滚事务。
以下是一个使用 @Transactional 注解的示例:
@Transactional
public void save(User user) {
// 执行业务逻辑
}
在 Java 中,还可以使用 PlatformTransactionManager 来管理事务。使用 PlatformTransactionManager 时,需要先创建一个 PlatformTransactionManager 对象,然后调用 PlatformTransactionManager 对象的 begin() 方法开启事务,然后执行业务逻辑,最后调用 PlatformTransactionManager 对象的 commit() 方法提交事务或调用 PlatformTransactionManager 对象的 rollback() 方法回滚事务。
以下是一个使用 PlatformTransactionManager 的示例:
PlatformTransactionManager transactionManager = new DataSourceTransactionManager(dataSource);
TransactionStatus transactionStatus = transactionManager.begin();
try {
// 执行业务逻辑
transactionManager.commit(transactionStatus);
} catch (Exception e) {
transactionManager.rollback(transactionStatus);
}