最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

环球微速讯:学习笔记——Spring声明式事务管理;Spring中支持事务管理;使用声明式事务管理;Spring声明式事务管理属性

来源:博客园

2023-01-18

一、Spring声明式事务管理

1、事务四大特征(ACID)


【资料图】

(1)原子性

(2)一致性

(3)隔离性

(4)持久性

2、事务三种行为

(1)开启事务:connection.setAutoCommit(False)

(2)提交事务:connection.commit()

(3)回滚事务:connection.rollback()

二、Spring中支持事务管理

1、编程式事务管理

(1)获取数据库连接Connection对象

(2)取消事务的自动提交(开启事务)

(3)执行操作

(4)正常完成操作时手动提交事务

(5)执行失败时回滚事务

(6)关闭相关资源

2、声明式事务管理(使用AOP管理事务)

先横向提取(事务管理代码),再动态织入

三、使用声明式事务管理

注:如果不使用事务管理代码,会出现以下情况:

同一个业务中,会出现局部成功及局部失败的现象(不正常)。

1、基本使用步骤

(1)添加支持jar包

                    org.springframework            spring-aspects            5.3.10        

(2)编写配置文件

①配置事务管理器

②开启事务注解支持

                    

(3)在需要事务管理的业务方法上添加注解@Transational

注:添加声明式事务管理之后,获取是代理对象,代理对象不能转换为目标对象(实现类)

四、Spring声明式事务管理属性

1、事务传播行为(Propagation)

当事务方法被另一个事务方法调用时,必须指定事务应该如何传播

如:执行事务方法method()1(事务x)之后,调用事务方法method2()(事务y),此时需要设置method()2方法的事务传播行为。

(1)事务的传播行为

①REQUIRED:如果有事务在运行,当前的方法就在这个事务内运行;否则就启动一个新的事务,并在自己的事务内运行

②REQUIRED_NEW:当前的方法必须启动新事务,并在自己的事务内运行;如果有事务正在运行,应该将它挂起。

关键词: 提交事务 回滚事务