事务的概念:
事务是一组操作的集合,它是一个不可分割的工作单位,集合中的操作要么同时成功要么同时失败
事务的特点:
①原子性:事务中所有数据的修改,要么全部执行,要么全部不执行
②一致性:事务完成时,要使所有的数据都保持一致的状态,通过事务进行的所有数据修改都必须在所有相关的表中体现
③隔离性:事务应该改另一个事务对数据的修改前或者修改后进行访问
④持久性:保证事务对数据库的修改是持久有效的,即使发生系统故障,也不会丢失
事务的传播行为:
事务的使用:
@Transactional:使用@Transactional注解可将当前方法交给spring进行事务管理
还可以在该注解中使用propagation来设置事务的传播行为例如
*使用前记得先在配置类加上注解@EnableTransactionManagement开启事务管理支持
下面是简单的代码实现
测试类
数据库
运行截图
这里可以账号123扣除金额的SQL语句已经执行了,但是因为i =1/0的语法问题导致账号456增加金额的SQL并没有执行,但是我们的数据库并没有变化,因为程序中间出现了报错所以整体回滚
随后我们把int i=1/0这行代码给删去再执行一遍
可以看到程序成功运行了
资料来源:
【JavaWeb】事务管理&AOP:https://blog.csdn.net/qinjilll/article/details/131411992