mybatis事务控制的分析
什么是事务?
百度百科的解释:
事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。
事务的四大特性 ACID
数据库事务 transanction 正确执行的四个基本要素。
ACID:
- 原子性(Atomicity):事务是一个原子操作单元,事务中包含的所有操作要么都做,要么都不做,没有第三种情况。
- 一致性(Correspondence):事务操作前和操作后都必须满足业务规则约束,比如说A向B转账,转账前和转账后AB两个账户的总金额必须是一致的。
- 隔离性(Isolation):隔离性是数据库允许多个并发事务同时对数据进行读写的能力,隔离性可以防止事务并发执行时由于交叉执行导致数据不一致的问题。
- 持久性(Durability):事务完成后,对数据的修改是永久的,即使出现系统故障也不会丢失。
安全性问题:不考虑隔离性会产生的问题
更新丢失:当两个事务选择同一行,然后更新数据,由于每个事务都不知道其他事务的存在,就会发生丢失更新的问题,(你我同时读取同一行数据,进行