spring 之事务

事务的属性:原子性 一致性 隔离性 持久性

原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生

一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。

隔离性:多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。

声明式事务

	<!-- 事务管理器 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="datasource"></property>
	</bean>
	<!-- 启动事务注解 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>

 然后在用到事务的方法或类上添加 @Transactional注解

事务的传播属性:

一个事务方法调用另一个事务方法 该如何传播。如:方法可能在现有的事务中运行 也可能开启一个新的事务

并在自己的事务中运行。

常用的传播属性时候required 和 required_new.

 required (默认):如果有事务在运行 当前方法就在这个事务内运行 否则开启新的事务 并在自己的事务内运行

通俗的说 事务方法A里有一个事务方法B.如果事务方法B中出现异常则回滚到事务A开始时的状态 即事务B和A中

的所有数据都恢复。@Transaction(propagation=Propagation.REQUIRED)


required_new:当前方法必须开启新事务 并在自己的事务内运行 如果有事务正在运行 则将它挂起.

 通俗的说:事务方法A里有一个事务方法B。如果运行到事务方法B的时候 事务方法A中的事务 挂起。 在方法B中

开启一个新的事务。如果方法B出现异常 则仅仅方法B中的数据回滚恢复。

更多参考:http://blog.csdn.net/yanyan19880509/article/details/53041564

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值