文档章节

spring的事务管理

非白非黑
 非白非黑
发布于 2017/06/16 06:24
字数 577
阅读 22
收藏 0

spring事务是指一系列指令的集合,它必须服从ACID的原则,ACID指的是:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability),数据库为了解决隔离性导致的脏读,幻读,不可重复读等问题,引入四个隔离级别:

      1、ISOLATION_DEFAULT:这是一个platformTransactionManager默认的隔离级别,使用数据库默认的事务级别

      2、ISOLATION_READ_UNCOMMITTED:这是事务最低的隔离级别,它允许另外一个事务可以看到这个事务未提交的数据

      这种隔离级别有可能会产生脏读,不可重复读和幻读的问题

      3、ISOLATION_READ_COMMITTED:保证一个事务修改的数据提交以后才能被另一个事务读取,另一个事务不能读取该事务未提交的数据

      4、ISOLATION_REPEATABLE_READ:这种事务隔离级别可以防止脏读,不可重复读,但有可能会出现幻读(可以防止一个事务不能读到另一个事务未提交的数据)

      5、ISOLATION_SERIALIZABLE  这是花费最高代价但是最可靠的事务隔离级别,事务被处理为顺序执行,可以防止脏读,不可重复读,幻读

其中ACID是指:

         原子性:操作这些指令时,要么全部执行成功,要么全部不执行,只要有一个指令执行失败,所有的指令都执行失败,数据进行回滚,回到执行指令前的数据状态

        一致性:事务执行时从一个数据状态转换为另一个状态,但是对于整个数据的完整性保持稳定

        隔离性:在该事务执行的过程中,无论发生的任何数据改变都应该只是存在于该事务中,对外界不存在任何影响,只有在事务确定正确提交之后,才会显示该事务对数据的改变,其他事务才能获取这些改变后的数据

      持久性:当事务正确完成后,它对数据的改变是永久性的

spring管理的实现则是通过实现三个高层接口来实现的

            1、PlatformTransactionManager 平台事务管理器

            2、TransactionDefinition  事务定义信息

            3、TransactionStatus     事务状态信息

© 著作权归作者所有

共有 人打赏支持
非白非黑
粉丝 0
博文 1
码字总数 577
作品 0
河西

暂无文章

咕泡-Factory设计模式笔记

个人感悟: 设计模式都是处理复杂问题的,如果问题本身很简单,使用设计模式反而累赘,增加了开发的复杂性 遇到最简单的情况,直接 new 如果创建对象的过程简单,但是需要匹配不同情况,返回...

职业搬砖20年
23分钟前
0
0
Java中的锁分类

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏...

Funcy1122
31分钟前
0
0
Ansible随机数

想为你的Ansible剧本取一个随机数?还想在接下来的运行中保持系统的等幂性?这里有一个答案。 假如,你要为一大批服务器设置cron任务,却不想让它们同时启动,你可以这样设置分钟数: minute...

大别阿郎
41分钟前
0
0
SpringCloud之服务注册中心Eureka

本系列介绍的配置均基于 Spring Boot 2.0.1.RELEASE 版本和 Spring Cloud Finchley.SR1 服务注册中心 Spring Cloud 已经帮我们实现了服务注册中心,我们只需要很简单的几个步骤就可以完成。 ...

熊小飞呀
今天
15
1
“Comparison method violates ...”异常的再现方法

前提条件:JDK8 代码: import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test { public stat......

hunterli
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部