声明式事务

  1. 编程式事务
    由程序员编程事务控制代码
  2. 声明式事务
    事务控制代码由Spring写好,
    声明式事务都是针对ServiceImpl类下的方法
    事务管理器是基于通知的(Advice)
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<!--  如果当前有事务,就在当前事务执行,如果当前没事务,就开启一个新事物 -->
			<tx:method name="ins*" propagation="REEQUIRED"></tx:method>
			<!--  如果当前有事务,就在当前事务执行,如果当前没事务,就在非事务执行 -->
			<tx:method name="ins*" propagation="SUPPORTS"></tx:method>
			<!--  如果当前有事务,就在当前事务执行,如果当前没事务,就会报异常 -->
			<tx:method name="ins*" propagation="MANDATORY"></tx:method>
			<!--  如果当前有事务,当前事务挂起,如果当前没事务,就会开一个新事务  必须在事务中执行-->
			<tx:method name="ins*" propagation="REQUIRES_NEW"></tx:method>
			<!--  不在事务中执行,如果当前有事务,当前事务挂起 -->
			<tx:method name="ins*" propagation="NOT_SUPPORTED"></tx:method>
			<!--  在非事务中执行,如果当前有事务,报异常 -->
			<tx:method name="ins*" propagation="NEVER"></tx:method>
			<!--  在事务中执行,如果当前有事务,创建嵌套事务,如果没事务,就新建事务
			 -->
			<tx:method name="ins*" propagation="NESTED" rollback-for="java.lang.Exception" no-rollback-for=""></tx:method>
			<!--配置只读,提高性能  -->
			<tx:method name="query*" read-only="true" isolation=“”default“”></tx:method>
		</tx:attributes>
	</tx:advice>
	
	<aop:config>
		<aop:pointcut expression="execution(* com.*.*(..))" id="point"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="point"/>
	</aop:config>

事务隔离级别 isolation

脏读
不可重复读
幻读

  • READ_UNCOMMITTED
  • READ_COMMITTED
  • REPEATABLED_READ
  • SERIALIZABLE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值