当前位置: 首页>后端>正文

Spring事务(个人学习记录)

事务的概念:

事务是一组操作的集合,它是一个不可分割的工作单位,集合中的操作要么同时成功要么同时失败

事务的特点:

原子性:事务中所有数据的修改,要么全部执行,要么全部不执行

一致性:事务完成时,要使所有的数据都保持一致的状态,通过事务进行的所有数据修改都必须在所有相关的表中体现

隔离性:事务应该改另一个事务对数据的修改前或者修改后进行访问

持久性:保证事务对数据库的修改是持久有效的,即使发生系统故障,也不会丢失

事务的传播行为:

Spring事务(个人学习记录),第1张

事务的使用:

@Transactional:使用@Transactional注解可将当前方法交给spring进行事务管理

还可以在该注解中使用propagation来设置事务的传播行为例如

Spring事务(个人学习记录),第2张

*使用前记得先在配置类加上注解@EnableTransactionManagement开启事务管理支持

下面是简单的代码实现

Spring事务(个人学习记录),第3张

测试类

Spring事务(个人学习记录),第4张

数据库

Spring事务(个人学习记录),第5张

运行截图

Spring事务(个人学习记录),第6张

这里可以账号123扣除金额的SQL语句已经执行了,但是因为i =1/0的语法问题导致账号456增加金额的SQL并没有执行,但是我们的数据库并没有变化,因为程序中间出现了报错所以整体回滚

Spring事务(个人学习记录),第7张

随后我们把int i=1/0这行代码给删去再执行一遍

Spring事务(个人学习记录),第8张
Spring事务(个人学习记录),第9张

可以看到程序成功运行了

资料来源:

【JavaWeb】事务管理&AOP:https://blog.csdn.net/qinjilll/article/details/131411992


https://www.xamrdz.com/backend/3ve1938255.html

相关文章: