Spring事务

mybatis-spring官网:http://mybatis.org/spring/zh/transactions.html

参考Spring整合Mybatis这篇文章,这个测试,主要就是在这篇文章上加一些东西。

首先是在spring-dao.xml这个配置文件上增加如下的东西

在这里插入图片描述

在这里插入图片描述

<tx:method name “*” propagation=“REQUIRED”>
* :表示所有方法

Spring中七种Propagation类的事务属性详解

  • **REQUIRED:**支持当前事务,如果当前没有事务,就新建一个事务。 这是最常见的选择,是Spring的默认选项
  • **SUPPORTS:**支持当前事务,如果当前没有事务,就以非事务方式执行。
  • **MANDATORY:**支持当前事務,如果当前没有事務,就抛出异常。
  • **REQUIRES_ NEW:**新建事务,如果当前存在務,把当前事务挂起。
  • **NOT_ _SUPPORTED:**以啡事务方式执行操作,如果当前存在事务,就把当前事务挂起。
  • **NEVER:**以非事务方式执行,如果当前存在事务,则抛出异常。
  • **NESTED:**支持当前事务,如果当前事务存在,则执行一个嵌套事务,如果当前没有事务,就新建一个事务。

然后在实体类接口上增加两组业务分别是增加、删除

在这里插入图片描述

配置UserMapper.xml文件,在这里我们要模拟出现错误的情况。(我们现在把增加、删除和查询 组合成一组业务)在这里我们先把删除语句写错,并且不开启事务。我们来看一下,增加的用户是否被增加进去了。

在这里插入图片描述

先看一下数据库原先的数据为:

在这里插入图片描述

然后把mybatis整合给Spring,让Spring托管

在这里插入图片描述

此时我们进行测试可以发现7号用户被增加进去了,但是6号用户并没有被删除,这样显然不符和我们的要求,因为删除、增加属于同一组业务,它们要不都成功,要不都失败,不可能出现一个成功,一个失败。

在这里插入图片描述

下边我们开启事务再看一下,此时我们会发现7号用户并没有被添加进去,6号用户也没有被删除。因为我们的删除语句出现了错误,而它们两个属于同一组业务,删除失败,从而导致增加业务也没有成功

在这里插入图片描述

最后我们把删除与语句改正确,我们再来看一下,我们的两组业务是否成功。我们会发现,删除和增加两组业务都成功了。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值