本地事务之Transactional详解
==前言==
1.spring本地事务是作用于本地的,不支持跨库跨系统
2.开始之前,建议先学习mysql事务 点击跳转->mysql事务
Transactional事务
1.@Transactional是声明式事务管理 编程中使用的注解
2.@Transactional 实质是使用了 JDBC 的事务来进行事务控制的
3.@Transactional 基于 Spring 的动态代理的机制
实现原理
Transactional实现是通过AOP实现的
事务开始时:
事务开始时,生成一个代理的connection对象,并将其放入一个容器中,客户代码都应该使用该 connection 连接数据库
添加位置
1.接口实现类
2.public修饰的方法上
事务的隔离级别
解释:是指若干个并发的事务之间的隔离程度
1. @Transactional(isolation = Isolation.READ_UNCOMMITTED):读取未提交数据(会出现脏读,
不可重复读) 基本不使用
2. @Transactional(isolation = Isolation.READ_COMMITTED):读取已提交数据(会出现不可重复读和幻读)
3. @Transactional(isolation = Isolation.REPEATABLE_READ):可重复读(会出现幻读)
4. @Transactional(isolation = Isolation.SERIALIZABLE):串行化