spring 事务的总结

来源:互联网 发布:淘宝号申请日期怎么看 编辑:程序博客网 时间:2024/05/16 16:09

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元数据声明事务管理和注解驱动式声明事务管理

原创粉丝点击