1. 初识事务
事务就是对数据资源进行可控的一组访问操作。为保证事务执行前后,数据资源所承载的系统状态所处于正确的状态,事务本身有四个属性:原子 性,一致性,隔离性和持久性。
原子性:原子性要求所有操作是一个整体,要么全部提交,要么全部失败。
一致性:要求事务对数据资源执行一致性检查,事务提交之前是处于某个数据一致性状态,事务提交后是处于某个数据性一致状态。
隔离性:主要规定各个事务互相影响程度,主要是面对数据资源的并发访问,当多个事务对数据资源进行访问,不同的隔离级别影响的效果不一样。
四种类型的隔离级别:
Read Uncommit :它是最低的隔离级别,一个事务读取另一个事务更新但没提交的结果,其本身会遇到几个问题;脏读,如果一个事务对数据进行了更新,但事务没提交,但该事务看到了最新的结果,如果该事务回滚,第二个事务看到的数据就是脏数据;
不可重复读取,指一个事务对同一数据资源进行读取,第一次读取该数据资源时,事务2没对该数据资源进行更新,第二次读取时,事务2对该数据资源进行更新,二次读取的数据结果不一样,这就是不可重复读取。
幻读,指同样一个查询 ,在整个事务的执行过程中,多次查询的数据结果是不一样的。
Read commit :指一个事务对数据资源进行更新提交之后,另一事务才能读取到它更新的结果,可以避免脏读,但无法避免不可重复读和幻读。
Repeatable Read :在整 个事务过程中,对同一笔数据的读取结果是相同,不管其它事务对该数据资源进行更新事务提交与否,它可避免脏读和不可重复读取。
Serializable:是整个事务最严历的隔离级别,所有的事务操作都是依次顺序来执行,可以避免其它的隔离级别遇到的问题,但它性也是最低的。
2. JTA和JCA分布式事务
3. 事务的三个接口:TransactionDefinition 、Transactionstatus、platformTransac-tionMananager
4. 使用spring进行事务管理
编程事务管理:使用platformTransac-tionManager事务管理和TransactionTemp-late
声明事务管理:XML元数据声明事务管理和注解驱动式声明事务管理