spring的事务管理
Spring事务管理基于底层数据库本身的事务处理机制 事务具备ACID四种特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性) 原子性:事务执行要么全部成功,要么全部失败,不存在第三种状态 一致性:事务完成后,数据库中的变化按期待的那样完成,保证了事务的原子性却不一定能保证一致性 隔离性:并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间,某个并发事务所做的修改必须与任何其他并发事务所做的修改隔离,事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据 持久性:只要事务成功结束,它对数据库所做的更新就必须永久保存下来 事务的传播 多个事务对方法进行调用,如何定义方法间事务的传播,Spring定义了以下几种传播行为(此处只列出了两种.): propagation_requierd:如果当前没有事务,就新建一个事务,如果已存在一个事务中,加入到这个事务中,这是Spring默认的选择。 propagation_required_new:新建事务,如果当前存在事务,把当前事务挂起。 脏读、不可重复读: 脏读指a事务正在访问数据,并且对数据进行了修改,但这种修改还没有提交到数据库中,这时b事务也访问了这个数据