ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

spring设置事务的隔离级别

2022-06-03 15:31:27  阅读:154  来源: 互联网

标签:事务 隔离 数据 spring Transactional 修改 表中 级别 Isolation


1、脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。

2、不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。

3、幻读:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。

 

spring中设置:

@Transactional(isolation = Isolation.READ_COMMITTED) :
    只读已提交的数据,数据库本身具备此功能

@Transactional(isolation = Isolation.REPEATABLE_READ) :
    设置行锁,在一个用户进行查询等操作时,其余用户不能对这一行数据进行修改操作

@Transactional(isolation = Isolation.SERIALIZABLE):
    设置表锁,在一个用户对数据表进行查询等操作时,其余用户不能对这个表进行任何修改操作

√:可能出现 ×:不可能出现

 

标签:事务,隔离,数据,spring,Transactional,修改,表中,级别,Isolation
来源: https://www.cnblogs.com/0099-ymsml/p/16340022.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有