很难出错的spring5(九)—— 声明式事务

文章介绍了数据库事务的四大特性,通过一个例子展示了没有事务管理时可能出现的问题。然后,文章重点转向Spring的声明式事务管理,说明如何通过AOP在不修改原有代码的情况下实现事务控制,以及如何配置XML文件来应用事务到所有方法。最后,文章指出这种方式避免了手动修改代码,并通过一个例子验证了事务管理的效果。
摘要由CSDN通过智能技术生成

一、事务回顾

对,就是数据库学的【事务】

一句话介绍事务:要么都成功,要么都失败。

4个特性:

  • 原子性
  • 隔离性
  • 一致性
  • 。。。

二、没有事务管理的例子

既然现在学习的是数据库中的事物,那就一定需要数据库,既然需要数据库,那就需要绑定mybatis,上一节已经学过如何绑定mybatis了,就接着上一个项目去用。

再增加两个方法:addUser和deleteUser

 

 执行数据库delete操作之前执行了add操作,delete失败了,那add成功了吗?

不幸的是,成功了

这不符合事务的要么都成功,要么都失败。

三、spring中的事务管理

        spring可以实现两种方式的事务管理

  • 声明式事务管理:AOP,切进去,不用改动原有代码
  • 编程式事物管理:通过try-catch+回滚的方式,要手动修改原有代码,直接不学

 我们下面只学声明式事务管理。

1. 在xml文件中配置声明式事物

2. AOP实现事务的织入

给所有方法(*)配置事物

 3. 切入(之前学的spring实现AOP的方式(一))

express表达式把mapper包下所有类的所有方法都配上了事务,所以上个例子中的 selectUser方法被配成了事务,一个delete操作失败,整个事务失败(用回滚实现删除add操作已经生效的部分)

 到现在为止,我们发现一直在写配置文件,并没有改代码。

再次运行上面例子中的代码,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值