SSH与SSM学习之Spring20——Spring事务之Spring相关的基础
来源:互联网 发布:类似ostagram的软件 编辑:程序博客网 时间:2024/06/06 03:13
- SSH与SSM学习之Spring20Spring事务之Spring相关的基础
- 一 PlatformTransactionManager 接口
- 二Spring事务管理的属性
- 1 事务隔离级别 isolation
- 2 事务传播行为 propagation
- 3 是否只读 read-only
SSH与SSM学习之Spring20——Spring事务之Spring相关的基础
一、 PlatformTransactionManager 接口
因为在不同平台,操作事务的代码各不相同。所以spring提供了一个接口 PlatformTransactionManager
Spring中,事务管理最重要的就是 TransactionManager对象
例如:PlatformTransactionManager的实现类
DataSourceTransactionManager jdbc事务管理
HibernateTransitionmanager hibernate事务管理
二、Spring事务管理的属性
2.1 事务隔离级别 isolation
事务的隔离级别
1 读未提交
2 读提交
4 可重复读
8 串行化
isolation表示事务的隔离级别,对应的值是
1 READ_UNCOMMITTED 读未提交
2 READ_COMMITTED 读提交
4 REPEATABLE_READ 可重复读
8 SERIALIZABLE 串行化
在Spring中定义的其实是一个枚举
public enum Isolation { DEFAULT(TransactionDefinition.ISOLATION_DEFAULT), READ_UNCOMMITTED(TransactionDefinition.ISOLATION_READ_UNCOMMITTED), READ_COMMITTED(TransactionDefinition.ISOLATION_READ_COMMITTED), REPEATABLE_READ(TransactionDefinition.ISOLATION_REPEATABLE_READ), SERIALIZABLE(TransactionDefinition.ISOLATION_SERIALIZABLE); private final int value; Isolation(int value) { this.value = value; } public int value() { return this.value; }}
public interface TransactionDefinition { ........... int ISOLATION_DEFAULT = -1; int ISOLATION_READ_UNCOMMITTED = Connection.TRANSACTION_READ_UNCOMMITTED; int ISOLATION_READ_COMMITTED = Connection.TRANSACTION_READ_COMMITTED; int ISOLATION_REPEATABLE_READ = Connection.TRANSACTION_REPEATABLE_READ; int ISOLATION_SERIALIZABLE = Connection.TRANSACTION_SERIALIZABLE; ...........}
public interface Connection extends Wrapper, AutoCloseable{ ...... int TRANSACTION_READ_UNCOMMITTED = 1; int TRANSACTION_READ_COMMITTED = 2; int TRANSACTION_REPEATABLE_READ = 4; int TRANSACTION_SERIALIZABLE = 8; ......}
2.2 事务传播行为 propagation
事务的传播行为指的是,多个业务方法嵌套条用,各自有操作了数据,它们之间事务的管理问题。
如图所示,多数情况下使用的是 PROPAGATION_REQUIRED 或者说 REQUIRED
PROPAGION_XXX :事务的传播行为* 保证同一个事务中PROPAGATION_REQUIRED 支持当前事务,如果不存在 就新建一个(默认)PROPAGATION_SUPPORTS 支持当前事务,如果不存在,就不使用事务PROPAGATION_MANDATORY 支持当前事务,如果不存在,抛出异常* 保证没有在同一个事务中PROPAGATION_REQUIRES_NEW 如果有事务存在,挂起当前事务,创建一个新的事务PROPAGATION_NOT_SUPPORTED 以非事务方式运行,如果有事务存在,挂起当前事务传智播客——专注于 Java、 .Net 和 Php、网页平面设计工程师的培训PROPAGATION_NEVER 以非事务方式运行,如果有事务存在,抛出异常PROPAGATION_NESTED 如果当前事务存在,则嵌套事务执行
2.3 是否只读 read-only
这个属性配置,当前的事务是否是只读的,true为只读,false为可写。如果是只读,事务中有写操作是会报错的。
阅读全文
0 0
- SSH与SSM学习之Spring20——Spring事务之Spring相关的基础
- SSH与SSM学习之Spring19——Spring事务之事务基础
- SSH与SSM学习之SSH整合09——Spring的aop事务
- SSH与SSM学习之Spring22——Spring事务之xml配置方式管理事务
- SSH与SSM学习之Spring23——Spring事务之注解配置方式管理事务
- SSH与SSM学习之Spring21——Spring事务之代码方式管理事务(基本不用)
- SSH与SSM学习之Spring03——Spring创建对象的方式
- SSH与SSM学习之SSH整合04——Struts2与Spring整合
- SSH与SSM学习之SSH整合06——Hibernate与Spring整合
- SSH与SSM学习之SSH整合02——单独配置Spring容器
- SSH与SSM学习之SSH整合07——Spring整合c3p0连接池
- SSH与SSM学习之SSH整合08——Spring整合Hibernate环境操作数据库
- SSH与SSM学习之Spring04——Spring属性注入之set方法注入
- SSH与SSM学习之Spring05——Spring属性注入之构造函数注入
- SSH与SSM学习之Spring06——Spring属性注入之p名称空间注入
- SSH与SSM学习之Spring07——Spring属性注入之spel注入
- SSH与SSM学习之Spring08——Spring属性注入之复杂类型注入
- SSH与SSM学习之Spring16——Spring中AOP之使用配置文件配置
- 十月小结,过去的一个月内,我收获了什么?
- 一致性哈希算法(consistent hashing)
- 初学Qt:QCheckBox
- Linux下使用unzip命令解压war包
- LeetCode 49 Group_Anagrams Java实现
- SSH与SSM学习之Spring20——Spring事务之Spring相关的基础
- CSS格式
- Codeforces 834A
- Error:Execution failed for task ':app:processDebugManifest'
- 美联航事件的系统思考
- Hadoop集群安装
- java作业
- 在c语言中宏和函数的区别
- 学习笔记TF054:TFLearn、Keras