事务
什么是事务?
事务是一组操作的集合,是一个不可分割的工作单位。
这组操作要不全部成功,要么全部失败。
如何控制事务?
- 开启事务:start transaction/begin;
- 提交事务:commit;(全部成功)
- 回滚事务:rollback;(只要有一项出现异常就回滚)
使用场景:银行转账;下单扣减库存;...

注解:@Transactional
作用:将当前方法交给spring进行事务管理,方法执行前,开启事务;成功执行完毕后提交事务;出现异常回滚事务;
位置:一般放在方法上;若在类或接口上方注解,则该类或接口的实现类的所有方法都会进行事务管理;
属性:rollbackFor是用于控制出现任何异常类型,回滚事务;

属性:propagation指当一个事务方法被另一个事务方法调用,这个方法如何控制事务管理;
- REQUIRED:[默认]需要事务,有则加入,无则创建新事务;(大部分场景)
- REQUIRES_NEW:需要新事务,无论有无,总要创建新事务;(希望两个方法在独立的事务中运行,互不影响)
四大特性(ACID)
- 原子性:事务是不可分割的最小单元,要么全部成功,要么全部失败;
- 一致性:事务完成时,必须使所有的数据保持一致;
- 隔离性:数据库系统提供的隔离机制,保证事务不受外部并发操作影响的独立环境下运行;
- 持久性:事务一旦提交或者回滚,他对数据库中数据的改变就是永久的;
浙公网安备 33010602011771号