spring 事务管理
来源:互联网 发布:河南百度seo排名优化 编辑:程序博客网 时间:2024/06/15 16:20
事务 包括ACID 四个性质 详见我前面的文章 “acid-事务的原子性、一致性、隔离性、持久性”
包含一个或多个参数:传播行为,隔离级别,只读提示、事务超时间隔
一 传播行为: 新的事务是否要被启用或挂起,方法是否在事务中
1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开
启
2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则非
事务的执行
3. PROPAGATION_MANDATORY: 该方法必须运行在一个事务内。如果没有一个活动的事务
,则抛出异常。
4. PROPAGATION_REQUIRES_NEW: 总是开启一个新的事务。如果一个事务已经存在,则
将这个存在的事务挂起。
5. PROPAGATION_NOT_SUPPORTED: 总是非事务地执行,并挂起任何存在的事务。
6. PROPAGATION_NEVER: 总是非事务地执行,如果存在一个活动事务,则抛出异常
7. PROPAGATION_NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如
果没有活动事务,
则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行
二 隔离级别
一般用第5种隔离方式
事务执行的时候,可能存在 脏读 不可重复读 和 幻读等情况。因此事务之间有五种隔离:
1. ISOLATION_DEFAULT: 这是一个PlatfromTransactionManager默认的隔离级别,使
用数据库默认的事务隔离级别.
另外四个与JDBC的隔离级别相对应
2. ISOLATION_READ_UNCOMMITTED: 这是事务最低的隔离级别,它充许令外一个事务可
以看到这个事务未提交的数据。
这种隔离级别会产生脏读,不可重复读和幻像读。
3. ISOLATION_READ_COMMITTED: 允许事务已经提交后读取,可防止脏读,但不可
防止不可重复读和幻像读
4. ISOLATION_REPEATABLE_READ:对相同字段的多次读取的结果是一致的 这种事务隔
离级别可以防止脏读,不可重复读。但是可能出现幻像读。
它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免下面的
情况产生(不可重复读)。
5. ISOLATION_SERIALIZABLE 完全符合ACID的级别,事务顺序执行。
三 只读 利用事务的只读特性,将可能启动新事务的传播行为标为只读才有意义,即传播行为如下:
PROPAGATION_REQUIRED
PROPAGATION_REQUIRES_NEW
PROPAGATION_NESTED
四 事务超时间隔 启用新事务的 设置启动超时 才有意义 即传播行为同三
- 事务管理之Spring事务管理
- Spring事务管理
- spring事务管理
- Spring事务管理
- Spring事务管理
- Spring事务管理
- Spring事务管理
- Spring事务管理
- Spring 事务管理
- Spring事务管理
- spring 事务管理
- spring 事务管理
- spring 事务管理
- spring事务管理
- Spring 事务管理
- Spring事务管理
- spring事务管理
- spring 事务管理
- mui框架请求数据后数据获取无法正常获取的问题
- oracle 表约束的添加、修改以及约束的禁用启用(转)
- 制造业:一年进口芯片花费超万亿 中国制造在为美国打工?
- JSONObject 的简单使用
- 使用Camera2 替代过时的Camera API
- spring 事务管理
- 文件的读写 -- java FileInputStream
- PreparedStatement
- $Proxy5 cannot be cast to -- SSH 事务采用java5注解
- 迁移学习概述
- java 常见的Exception runtimeException
- 关于函数Vector3.Lerp差值函数的理解记录
- hibernate执行sql语句
- java 使用jdbc 链接数据库