MyBatis中处理事务的方法有两种:
- 使用程序控制事务:通过获取MyBatis的SqlSession对象,调用其beginTransaction()、commit()、rollback()等方法来控制事务的提交和回滚。
SqlSession sqlSession = sqlSessionFactory.openSession(); try { // 开启事务 sqlSession.beginTransaction(); // 执行业务逻辑 // 提交事务 sqlSession.commit(); } catch (Exception e) { // 回滚事务 sqlSession.rollback(); } finally { sqlSession.close(); }
- 使用注解或XML配置方式:可以在Mapper接口方法上使用@Transaction注解或在XML配置文件中配置事务的传播行为和隔离级别。
@Mapper public interface UserMapper { @Insert("insert into user(name, age) values(#{name}, #{age})") @Transactional void insert(User user); }
或者在XML文件中配置:
使用哪种方式取决于开发者的需求和习惯。