1. 基本概念
事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都会失败。
1.1经典场景
1.2 事务四个特性(ACID)
- 原子性
- 要么都成功,一个失败都失败
- 一致性
- 事务提交前后的数据完整性和状态行保持一致,比如张三有100 ,李四有100 ,加起来200,张三给李四100后,他们俩个加起来还是200
- 隔离性
- 在事务操作的时候不会产生影响,比如两个人同时操作一条记录,这个过程中他们之间是不会产生影响的
持久性
(1)上面问题怎么解决?
- 使用事务解决
2.1 在Spring进行事务管理操作
有两种方法:
- 编程式事务管理
- 就是上图的方式,第一步,第二步,第三步。。。代码冗余
- 声明式事务管理(推荐)
- 基于注解方式
- 基于xml配置文件方式
2.2 Spring事务管理API
- 提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类
- mysql 就实现DataSourceTransactionManager