1.添加事务依赖

<!-- 用来开启事务使用 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
</dependency>

<!-- springboot整合的事务开启依赖,无论是mybatis或是mybatis-plus都适用 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency> 
@EnableTransactionManagement和@Transactional注解都在spring-tx。
mybatis-plus-boot-starter不需要进行依赖,因为它以及默认引入了sprint-tx

2.开启和使用事务

 1.在Springboot的启动类上,或是某个配置类上添加注@EnableTransactionManagement

     mybatis-plus已经配置了@EnableTransactionManagement所以不用开启   

  2.在具体要进行开始事务的类上或方法上添加注解@Transactional

  • 使用在类上,表示这一个类的所有方法都会添加上事务
  • 使用在方法上,表示这一个添加了该注解的方法才会有事务
  • @Transactional默认回滚的是RuntimeExcaption,如果不是抛出的RuntimeException则不会被回滚。所以如果try catch捕获异常了,一定要将异常抛出去
  • @Transactional(rollbackFor=Excetpion.class),在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚。

参考:

使用SpringBoot集成Mybatis或Mybatis-plus开启事务_自律的冷静的博客-CSDN博客_mybatis如何开启事务

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐