MyBatis的事务管理:事务的概念

事务是一步或几步操作组成的逻辑执行单元,这些基本操作作为一个整体执行单元,他们要么全部执行,要么全部取消,绝不能仅仅执行了一部分.一般而言,一个用户请求对应一个业务逻辑方法,一个业务逻辑方法往往具有逻辑上的原子性,此时应该使用事务.例如一个转账操作,对应修改两个账户的余额,这两个账户的修改要么同时生效,要么同时取消,同时生效的是转账成功,同时取消是转账失败;但是不能只修改其中一个账户,那将破坏数据库的完整性.
通常来讲,事务具有4个特性:原子性(Atomicity),一致性(Consisterncy),隔离性(Isolation)和持续性(Durabillity),这4个特性也简称为ACID性,具体描述如下:
原子性(Atomicity):事务是应用中最小的执行单位,就如原子是自然界最小的颗粒,具有不可再分的特征一样,事务是应用中不可再分的最小逻辑执行体.
一致性(Consistency):事务执行的结果,必须使数据库从一种一致性状态,变到另一种一致性状态,当数据库只包含事务成功提交的结果时,数据库处于一致性状态.如果系统运行发生中断,某个事务尚未完成而被迫中断,而该未完成的事务对数据库所做的修改已被写入数据库,此时,数据库就处于一种不正确的状态.比如银行在两个账户之间转账:A账户向B账户转入1000元,系统先减少A账户1000元,然后再为B账户增加1000元,如果全部执行成功,数据库就处于一致性状态.如果仅执行完A账户金额的修改,而没有执行B账户增加的金额,这数据库就属于不一致性状态.因此,一致性是通过原子性来保证的.
隔离性(Isolatin):各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的.即,并发执行的事务之间不能相互影响.
持续性(Durability):持续性也被称为持久性(Persistence),指事务一旦提交,对数据所做的任何改变都要记录到永久存储器中,通常就是保存到物理数据库.