Spring框架:事务操作

本文介绍了数据库事务的基本概念,包括事务的四大特性(ACID)和在实际操作中的应用,如银行转账。重点讲解了在Spring框架中如何进行事务管理,包括编程式和声明式事务管理,特别是注解声明式事务管理的配置和参数设置。通过事务传播行为、隔离级别等参数,确保事务的正确性和数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事务概念

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文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值