什么是事务
事务是数据库操作的最基本单元,逻辑上一组操作要么都成功,如果有一个失败,那么都失败
场景:银行的转账
事务的四大特性:(ACID)
(1)原子性:过程要么都成功,要么都失败
(2)一致性:操作前后总量不变
(3)隔离性:多事务操作时,相互不产生影响
(4)持久性:事务提交后,表数据会发生变化
事务操作(spring事务管理)
事务一般加到service层
两种方式:声明式事务管理(使用)、编程式事务管理(不使用,使代码冗余)
声明式事务管理
1.基于xml配置文件方式
2.基于注解方式(使用)
在spring中声明式事务管理,底层使用的是AOP
Spring事务管理API
propagation:事务传播行为7种,主要有两种常用:REQUIRED和REQUIRES_NEW
事务方法:对数据库表数据进行变化的操作,查询不算
ioslation:事务隔离级别
隔离性:多事务操作之间不会产生影响,如果不考虑隔离性会产生很多问题
产生问题:1.脏读: 一个未提交事务读取到另一个未提交事务中变化的数据
2.不可重复读:一个未提交事务读取另一提交事务的修改数据
3.虚(幻)读:一个未提交事务读取另一提交事务的添加数据
timeout:超时时间
readOnly:是否只读
rollbackFor:对哪些异常就行事务回滚
noRollbackFor:对哪些异常不进行事务回滚