每个业务逻辑方法都是由一系列的数据库访问完成的,这一系列的数据访问可能会修改多条数据记录,这一系列的修改应该是一个整体,绝不能仅修改其中的几条。也就是说,多个数据库原子访问应该绑定成一个整体------这就是事务。事务是一个最小的逻辑执行单元,整个事务的执行不能分开执行,要么同时执行,要么同时放弃执行。
事务是一步或几步基本操作组成的逻辑执行单元,这些基本操作作为一个整体执行单元,它们要么全部执行,要么全部取消,决不能仅仅执行部分。一般而言,每次用户请求,对应一个业务逻辑方法,一个业务逻辑方法往往具有逻辑上的原子性,应该使用事务。例如一个转账操作,对应修改两个账户的余额,这两个账户的修改要么同时生效,要么同时取消------同时生效是转账成功,同时取消是转账失败;但不可只修改其中一个账户,那将破坏数据库的完整性。
通常来讲,事务具备四个特性:原子性、一致性、隔离性和持续性,这四个特性简称ACID。
原子性:事务是应用中最小执行单位,事务是应用中不可再分的最小逻辑执行体。
一致性:事务执行的结果,必须使数据库从一个一致性状态变到另一个一致性状态。一致性是通过原子性来保证的。
隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的。即并发执行的事务之间不能互相影响。
持久性:指事务一旦提交,对数据所做的任何改变,都要记录到永久存储器中,通常就是保存进物理数据库。