Spring框架:事务 *** 作

Spring框架:事务 *** 作,第1张

Spring框架:事务 *** 作 事务概念

1、什么是事务

(1)事务是数据库 *** 作的最基本的单元,逻辑上的一组 *** 作,要么都成功,如果有一个失败则所有的 *** 作都失败

(2)典型场景:银行转账

2、事务四个特性(ACID)

(1)原子性

(2)一致性

(3)隔离性

(4)持久性

事务 *** 作(搭建事务 *** 作的环境)

 

1、创建数据库表,添加记录

2、创建service,搭建dao,完成对象创建和注入关系

(1)service注入dao,在dao注入JdbcTemplate,在JdbcTemplate注入DataSource

 

 3、在dao创建两个方法:多钱和少钱的方法,在service创建方法(转账的方法)

 

 4、上面代码,如果正常执行没有问题,但是如果代码在执行过程中出现异常,有问题

(1)如何解决问题?

* 使用事务进行解决

(2)事务 *** 作基本过程

事务 *** 作(Spring 事务管理介绍)

1、事务添加到JavaEE三层结构里面Service层(业务逻辑层)

2、在Spring进行事务管理 *** 作

(1)有两种方式:编程式事务管理和声明式事务管理(使用)

3、声明式事务管理

(1)基于注解方式(使用)

(2)基于xml配置文件方式

4、在Spring进行声明式事务管理,底层使用AOP原理

5、Spring事务管理API

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

 事务 *** 作(注解声明式事务管理)

1、在Spring的配置文件中配置事务管理器

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

(1)在Spring配置文件中引入名称空间tx

(2)开启事务注解

3、在service类上面(或者service类里面方法上面)添加事务注解

(1)@Transactional,这个注解添加到类上面,也可以添加到方法上面

(2)如果把这个注解添加到类上面,这个类里面所有的方法都添加事务

(3)如果把这个注解添加到方法上面,为这个方法添加事务

事务 *** 作(声明式事务管理参数配置)

1、在service类上面添加注解@Transactional,在这个注解里面可以配置事务相关参数

 2、propagation:事务传播行为

(1)多事务方法之间进行调用,这个过程中事务是如何进行管理的

 事务的传播行为可以由传播属性指定。Spring定义了7种类传播行为。

  

3、isolation:事务隔离级别

(1)事务有特性称为隔离性,多事务 *** 作之间不会产生影响。不考虑隔离性,会产生很多问题。

(2)有三个读的问题:赃读、不可重复读、幻读

(3)赃读:一个未提交的事务读取到了另一个未提交事务的数据

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

(5)幻读:一个未提交事务读取到另一个提交事务添加数据

(6)解决:通过设置事务的隔离级别,解决读问题。

4、timeout:超时时间

(1)事务需要在一定的时间内进行提交,如果不提交进行回滚

(2)默认值是-1(不超时),设置时间以秒为单位进行计算

5、readOnly:是否只读

(1)读:查询 *** 作,写:添加修改删除 *** 作

(2)readOnly默认值是false,表示可以进行添加修改删除 *** 作

(3)设置readOnly值为true,只能查询。

6、rollbackFor:回滚

(1)设置出现哪些异常进行事务回滚

7、noRollbackFor:不回滚

(1)设置出现哪些异常不进行事务回滚

事务 *** 作(XML声明式事务管理)

1、在Spring配置文件中进行配置

第一步:配置事务管理器

第二步:配置通知

第三步:配置切入点和切面

事务 *** 作(完全注解声明式事务管理)

1、创建配置类,使用配置类替代xml文件

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5682684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存