首页 > 编程语言 > 详细

Spring5--事务操作介绍

时间:2021-08-16 14:37:13      阅读:18      评论:0      收藏:0      [点我收藏+]

一、事务概念

1.什么是事务?

事务是数据库操作的最基本单元,逻辑上的一组操作,要么成功,要么都失败。

2.事务的四个特性(ACID)

(1)原子性:事务中包含的程序作为数据库的逻辑工作单元,它所做的对数据库的操作要么全部成功,要么完全不执行;

(2)一致性:在一个事务单元执行之前和执行之后数据库都必须处于一致性状态;例如数据库的状态满足所有的完整约束;

(3)隔离性:一个事务内部的操作以及正在操作的数据必须封锁起来,不被其他企图进行修改的事务看到;

(4)持久性:当系统或介质发生故障时,确保已经提交的事务的更新不能丢失。

二、事务管理 

1.事务操作添加到JavaEE三层结构的Service层(业务逻辑层);

2.在Spring中有两种方式实现实现事务管理操作:编程式事务管理和声明式事务管理(常用)

3.声明式事务管理分为:基于注解的方式(常用)和基于XML配置文件方式

4.声明式事务管理,底层使用AOP原理

5.Spring事务管理API:

提供一个接口PlatformTransactionManager,代表事务管理器,这个接口针对不同的框架提供不同的实现类;

技术分享图片

 三、事务操作 (注解方式实现声明式事务管理)

1.配置事务管理器

技术分享图片

2.在Spring配置文件中,开启事务注解

①在Spring配置文件中引入名称空间TX

技术分享图片

②开启事务注解

技术分享图片

③在service类或者事务管理的方法上添加注解

技术分享图片注解添加到类上,类中的所有方法都开启事务管理;添加到方法上,只是该方法开启事务管理;

四、事务操作 (注解方式实现声明式事务管理:参数配置)

1.在service类上添加注解@Transactional,在注解中配置相关参数

技术分享图片

(1)propagation:事务传播行为

①多事务方法直接进行调用,这个过程中事务是如何进行管理的。

技术分享图片

 ②事务的传播行为有7中方式:

技术分享图片

③默认参数

技术分享图片

(2)isolation:事务隔离级别

①事务会出现的读的问题:

     脏读:一个未提交的事务读取到了另一个未提交的事务的数据

     不可重复读:一个未提交的事务读取到了另一个提交的事务修改的数据

     幻读:一个未提交的事务读取到了另一个提交的事务添加的数据

②四种隔离级别

 技术分享图片

 ③默认参数

技术分享图片

(3)timeout:超时时间 事务需要在一定时间内进行提交,如果不提交进行回滚;默认值-1,设置时间以秒为单位

技术分享图片

(4)readOnly:是否只读

读是查询操作;写是修改删除添加操作;默认值为false,表示可以查询和修改删除添加操作;当设置为true时,只能做查询操作!

技术分享图片

(5)rollbackFor:回滚

设置出现哪些异常,进行回滚

(6)noRollbackFor:不回滚

设置出现哪些异常,不进行回滚

五、事务操作 (完全注解方式实现声明式事务管理)

配置类的写法

技术分享图片

 技术分享图片

Spring5--事务操作介绍

原文:https://www.cnblogs.com/taozhiyaoyao99/p/15138239.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!