Java 事务用法

76 阅读1分钟
  1. Connection 对象上调用 setAutoCommit(false) 方法,将自动提交关闭。
  2. 执行业务逻辑。
  3. 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);
}