事务概念
-
什么叫事务
(1)事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果一个失败,操作都失败 -
事务特性ACID
(1) 原子性:
(2) 隔离性
(3) 一致性
(4) 持久性 -
事务操作(搭建事务操作环境)
-
创建数据库表,添加记录
-
创建service,搭建dao,完成对象创建和注入关系
(1) service注入dao,在dao注入jdbcTemplate,在jdbcTemplate注入datasource
(2) 在dao创建两个方法,多钱和少钱的方法,
(3) 如果出现异常
使用事务解决
6. Spring管理事务介绍
事务添加到javaEE三层结构里面service层(业务逻辑层)
在spring进行事务管理操作,
有两种方式:编程式事务管理和声明式事务管理(使用)
声明式事务管理
(1) 基于注解方式
(2) 基于xml配置方式
在spring进行声明式事务管理,底层使用aop原理
- Spring事务管理API
(1) 提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类 - 事务操作(注解声明式事务管理)
- 在spring配置文件中创建事务管理器
- 在spring配置文件开启事务注解
(1) 在spring配置文件引入tx名称空间
(2) 开启事务注解 - 在service类上面(获取service类里面方法上面)添加事务注解
(1)@Transactional,这个注解添加到类上面,也可以添加到方法上面,
(2)如果这个注解添加类上面,这个类里面所有方法都添加事务
(3)如果把这个注解添加到方法上面,为这个方法添加事务 - 事务操作(声明式事务管理参数配置)
- 在service类上面添加注解@Transactional,在这个注解里面可以配置事务相关参数
(1) propagation:事务传播行为 - 多事务之间进行调用,这个过程中事务是如何进行管理的,
(2) isolation:事务隔离级别 - 事务有特性成为隔离性,多事务操作之间不会产生影响,不考虑隔离性产生很多问题,
- 有三个都问题,藏独,不可重复度,脏读(幻)读
- 脏读:一个未提交事务读取到另一个未提交事务的数据
不可重复读:一个未提交的事务读取到了另一个提交事务修改的数据
虚读:
一个未提交事务读取到另一提交事务添加数据
通过事务隔离性,解决都问题
(3) timeout超时时间
事务需要在一定的时间内提交,如果不提交进行回滚
默认值是-1,设置时间以秒单位计算
(4) readonly是否只读
(1) 读,查询操作,写,添加修改删除操作,
(2) Readonly默认值false.表示可以查询,可以添加修改删除操作
(3) 设置readonly值是true,设置为true之后,只能查询
(5) rollbackFor回滚
(1)设置查询哪些异常进行事务回滚
(6) noRollbackFor:不回滚
(1)设置出现哪些异常不进行事务回滚
- 事务操作(xml声明式事务管理)
- 在spring配置文件中进行配置
- 配置通知
- 配置切入点和切面
- 事务操作(完全注解声明式管理)
- 创建配置类,