Spring 的事务管理

Spring 提供的事务管理API

PlatformTransactionManager: 平台事务管理器

TransactionDefinition: 事务定义

TransactionStatus: 事务状态

PlatformTransactionManager 通过TransactionDefinition 设置事务相关的信息,管理事务,管理事务过程中,产生一些事务状态,由TransactionStatus 记录。

API详解:
PlatformTransactionManager:接口.
Spring为不同的持久化框架提供了不同PlatformTransactionManager接口实现

org.springframework.jdbc.datasource.DataSourceTransactionManager : 使用Spring JDBC或iBatis 进行持久化数据时使用

org.springframework.orm.hibernate3.HibernateTransactionManager : 使用Hibernate3.0版本进行持久化数据时使用

TransactionDefinition:

  • ISOLATION_DEFAULT: 默认级别 Mysql: repeatable_read oracle read_commited

  • ISOLATION_READ_UNCOMMITTED

  • ISOLATION_READ_COMMITTED
  • ISOLATION_REPEATABLE_READ
  • ISOLATION_SERIALIZABLE
事务的传播行为:(不是JDBC事务管理,用来解决实际开发的问题.)传播行为:解决业务层之间的调用的事务的关系.
  • PROPAGATION_REQUIRED: 支持当前事务,如果不存在 就新建一个 A,B如果A有事务,B使用A的事务,如果A没有事务,B就开启一个新的事务.(A,B是在一个事务中。)

  • PROPAGATION_SUPPORTS:支持当前事务,如果不存在,就不使用事务 A,B 如果A有事务,B使用A的事务,如果A没有事务,B就不使用事务.

  • PROPAGATION_MANDATORY:支持当前事务,如果不存在,抛出异常A,B 如果A有事务,B使用A的事务,如果A没有事务,抛出异常.

  • PROPAGATION_REQUIRES_NEW: 如果有事务存在,挂起当前事务,创建一个新的事务
    A,B 如果A有事务,B将A的事务挂起,重新创建一个新的事务.(A,B不在一个事务中.事务互不影响.)

  • PROPAGATION_NOT_SUPPORTED 以非事务方式运行,如果有事务存在,挂起当前事务
    A,B 非事务的方式运行,A有事务,就会挂起当前的事务.

  • PROPAGATION_NEVER 以非事务方式运行,如果有事务存在,抛出异常

  • PROPAGATION_NESTED 如果当前事务存在,则嵌套事务执行 基于SavePoint技术. A,B A有事务,A执行之后,将A事务执行之后的内容保存到SavePoint.B事务有异常的话,用户需要自己设置事务提交还是回滚.

  • 常用:(重点)

  • PROPAGATION_REQUIRED

  • PROPAGATION_REQUIRES_NEW
  • PROPAGATION_NESTED
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值