这是我参与8月更文挑战的第4天,活动详情查看: 8月更文挑战”
✔上一篇Spring Boot系列文章 我们说到了 SpringBoot集成MyBatis,今天来说说Spring Boot 事务支持
?Spring Boot 事务支持
?什么是事务?
我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合。由于数据操作在顺序执行的过程中,任何一步操作都有可能发生异常,异常会导致后续操作无法完成,此时由于业务逻辑并未正确的完成,之前成功操作数据的并不可靠,需要在这种情况下进行回退。
事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生异常就回退到事务开始未进行操作的状态。
事务管理是Spring框架中最为常用的功能之一,我们在使用Spring Boot开发应用时,大部分情况下也都需要使用事务。
Spring Boot 使用事务非常简单,底层依然采用的是 Spring 本身提供的事务管理
➢ 在入口类中使用注解 @EnableTransactionManagement 开启事务支持
➢ 在访问数据库的 Service 方法上添加注解 @Transactional 即可
?1、案例思路
通过 SpringBoot +MyBatis 实现对数据库学生表的更新操作,在 service 层的方法中构建
异常,查看事务是否生效
项目名称:012-springboot-web-mybatis-transacation
该项目是在 011 的基础上添加新增方法,在新增方法中进行案例的演示
?2、实现步骤
(9) 在 StudentController 中添加更新学生的方法
(10) 在 StudentService 接口中添加更新学生方法
(11) 在 StudentServiceImpl 接口实现类中对更新学生方法进行实现,并构建一个异常,同时在该方法上加@Transactional 注解
(12) 在 Application类上加@EnableTransactionManagement 开启事务支持
@EnableTransactionManagement 可选,但是业务方法上必须添加@Transactional 事务才生效
(13) 启动 Application,通过浏览器访问进行测试
通过以上结果,说明事务起作用了
(14) 注释掉 StudentServiceImpl 上的@Transactional 测试数据库的数据被更新