spring事务学习

PlatformTransactionManager,
通过这个接口,Spring为各个平台如JDBC、Hibernate等都提供了对应的事务管理器

spring的事务是逻辑事务

和物理事务最大的区别在于,事务的传播行为,可以在多个事务方法间传播。

隔离级别

ISOLATION_DEFAULT 使用数据库默认的事务隔离级别,另外四个与 JDBC 的隔离级别相对应
ISOLATION_READ_UNCOMMITTED
ISOLATION_READ_COMMITTED
ISOLATION_REPEATABLE_READ
ISOLATION_SERIALIZABLE


clipboard.png

回滚规则

Spring只有在抛出的异常为运行时unchecked异常时才回滚该事务,也就是抛出的异常为RuntimeException的子类(Errors也会导致事务回滚)

脏读(dirty read)

事务没提交,提前读取
如果第二个事务查询到第一个事务还未提交的更新数据,形成脏读


4e454df90939.png

不可重复读(unrepeated read)

一个事务两次读取同一行数据,结果得到不同状态结果,如中间正好另一个事务更新了该数据,两次结果相异,不可信任


7794831973dd.png

幻读(phantom read)

一个事务执行两次查询,第二次结果集包含第一次中没有或者某些行已被删除,造成两次结果不一致,只是另一个事务在这两次查询中间插入或者删除了数据造成的


191271a067f4.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 笔记简述本学习笔记主要是介绍了事务相关的基础知识,学习编程式事务和声明式事务等不同的事务使用方法。不过现在实际开发...
    jwfy阅读 1,927评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,534评论 19 139
  • 很多人喜欢这篇文章,特此同步过来 由浅入深谈论spring事务 前言 这篇其实也要归纳到《常识》系列中,但这重点又...
    码农戏码阅读 4,912评论 2 59
  • 原文链接:https://docs.spring.io/spring-boot/docs/1.4.x/refere...
    pseudo_niaonao阅读 4,884评论 0 9
  • AA买醉未归阅读 218评论 0 0

友情链接更多精彩内容