大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
这里不再重复READ_UNCOMMITTED
, READ_COMMITTED
, REAPEATED_READ
, SERIALIZABLE
这几种标准事务隔离级别的关系,网上资料一大把。很多朋友可能会有疑惑,如果Spring事务可以设置隔离级别,而数据库也可以设置默认隔离级别,那他们到底是怎样的关系呢?
直接说结论:
- Spring会在事务开始时,根据你程序中设置的隔离级别,调整数据库隔离级别与你的设置一致。
- 当使用
Serializable
级别时,Mysql在执行SQL时会自动修改为select .... lock in share mode
, 即使用共享锁。此时允许同时读,但只允许一个事务写,且锁的是行而不是整张表。
这意味着:
- 如果数据库不支持某种隔离级别,那么Spring设置了也无效。
- 当使用
Serializable
级别时,如果两个事务读写的不是同一行,那么它们是互不影响的。如果操作同一行记录,那么允许同时读,但如果出现一个对此行的写操作,则在写事务没有提交之前,所有的读事务都会被block。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184284.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...