1、 在pom文件里添加相关maven文件
2、 在application.properties配置文件中引入数据源,创建数据库表,并插入两条原始数据:andy 余额200元,lucy 余额300元
数据库初始值如下:
3、 开发实体类,dao,service,controller,mapper等
实体类 :
dao :
service :
service 实现类:
controller:
mapper:
4、 在application.properties配置文件中添加对mapper文件的扫描
5、 在启动类中添加对mapper包扫描@MapperScan
6、 浏览器测试http://localhost:8080/account/transfer, 测试显示 转账成功,看看数据库的数据,andy余额是150, lucy余额350,都是对的,如下图所示。
7,接着我们修改service,在实现类里,转出之后抛个异常,代码如下
8,把数据库的数据恢复成最初的 andy-200, lucy-300, 然后启动类测试,浏览器输入http://localhost:8080/account/transfer, 测试显示 转账失败,看看数据库的数据,andy余额是150, lucy余额300,如下图所示。
相当于转出成功,转入没有成功,这是不对的,应该都成功,或者都不成功。
9, 我们接着在service实现类上添加@Transactional 注解,声明一个事务,如下
10,再把数据库的数据恢复成最初的 andy-200, lucy-300, 然后启动类测试,浏览器输入http://localhost:8080/account/transfer, 测试显示 转账失败,看看数据库的数据,andy余额是200, lucy余额300,如下图所示。
说明转出和转入都没有成功,这才是合乎逻辑的。
springboot 开启事物很简单,只需要加注解@Transactional @EnableAutoConfiguration,声明事务就可以了。
领取专属 10元无门槛券
私享最新 技术干货