Spring事务

Spring事务

1、主要解决了什么样的问题

​ 假设目前有这么一个业务问题:我们要查询所有的用户的业务,在这个业务中有三个步骤,首先增加一个用户,再删除这个用户,最后查询所有用户的业务;但是其中删除用户的这一个操作有一个语法错误或者其他错误,导致删除失败,并且数据库中会新增刚才所增加的那个用户。即,业务没有成功,但是数据库中却多了一个人。

​ **Spring事务要解决的事情:**根据事务的原子性,要么全成功,要么全失败;删除失败后,应该回滚。使数据库中的数据量不变。

2、如何使用Spring事务

  • 声明式事务:AOP
  • 编程式事务:需要在代码中进行事务的管理
配置声明式事务

采用AOP横切的方式进行事务的织入

<!--开启声明式事务-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <constructor-arg ref="dataSource" />
</bean>
<!--结合AOP实现事务的织入-->
<!--配置事务的通知-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
  <!--给那些方法配置事务-->
  <!--配置事务的传播特性:propagation="REQUIRED",默认就是required(支持当前事务,如果当前没有事务,就新建一个事务)-->
  <tx:attributes>
    <tx:method name="*" propagation="REQUIRED"/>
  </tx:attributes>
</tx:advice>
<!--配置事务的切入-->
<aop:config>
  <aop:pointcut id="txPointcut" expression="execution(* com.psy.mapper.*.*(..))"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
</aop:config>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值