您的位置:首页 > 编程语言 > Java开发

Spring Boot整合Mybais与事务管理的注意事项

2020-04-20 14:05 573 查看

Spring Boot整合Mybatis与事务管理的注意事项

整合Mybatis

  1. 在pom.xml添加相关的jar包依赖
<!-- 加载mybatis整合springboot的依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>

<!-- MySQL的jdbc驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
  1. 在配置文件中配置mysql的链接信息

  2. 在mapper类上面加上@Mapper 将其变成spring容器中的bean
    或者在运行入口添加@MapperScan(“com.mybatis.mapper”)注解进行扫描

  3. 如果将mapper.xml文件放到resources中,则需要在application.properties文件中加上mybatis.mapper-locations=classpath:mapper/*.xml进行指定文件位置

事务管理

  1. 在启动入口类中使用注解@EnableTransactionManagement 表示开启事务支持
  2. 在service方法上添加注解
  • @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

    propagation 表示事务的规则

    PROPAGATION_REQUIRED:如果存在一个事务,则支持当前事务。如果没有事务则开启。
  • PROPAGATION_SUPPORTS:如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。
  • PROPAGATION_MANDATORY:如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。
  • PROPAGATION_REQUIRES_NEW:总是开启一个新的事务。如果一个事务存在,则将这个存在的事务挂起。
  • PROPAGATION_NOT_SUPPORTED:总是非事务地执行,并挂起任何存在的事务。
  • PROPAGATION_NEVER:总是非事务地执行,如果存在一个活动事务,则抛出异常。
  • PROPAGATION_NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中,如果没有活动事务,则按TransactionDefinition.PROPAGATION_REQUIRED属性执行
  • 查询的注解
    @Transactional(readOnly = true,propagation= Propagation.NOT_SUPPORTED)
    此注解表示只读,没有事务

  • rollbackFor 回滚抛出异常
    • 点赞 1
    • 收藏
    • 分享
    • 文章举报
    渡灬魂 发布了11 篇原创文章 · 获赞 12 · 访问量 485 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: