mybatis 手动/自动触发事务回滚
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis 手动/自动触发事务回滚相关的知识,希望对你有一定的参考价值。
参考技术A 有时候我们在service层的某个方法中,得到的不是我们期望的结果,我们就要手动或者自动触发事务回滚首先要设置@EnableTransactionManagement(springboot开启事务支持的方式),然后要在方法上设置@Transactional
场景1:
场景2:
Mybatis中添加查询修改删除
在Mybatis中添加数据的操作
编写相对应的SQL语句,并完成相关数据的对应关系
编写测试用例
需要提交事务 sqlSession commit()
这里需要注意的是mybatis是默认的是手动提交事务,如果不写的话会进行回滚,添加操作就不会被执行
或者在
如果想要获取到添加数据的id值(id一般默认是自动增长的)
需要在sql映射文件中,也就是mapper.xml中添加一些元素 useGeneratedKeys=“true” keyProperty=“id”
查询操作
多条件查询
-
当提供了几个属性时,可以根据这些属性进行具体查询
-
有三种方法
-
1.根据提供的具体的属性,在测试类中属性传递过来,相互对应
单条件动态查询
- 当遇到给到的数据比较少时,且每次给到的数据不一样的时候,可以使用单条件的动态查询
使用《choose》标签可以选择其中的一个或几个属性(使用《when》标签)进行执行
修改数据的操作
使用动态SQL来执行修改操作,使用set标签,(那个数据填入就修改那个数据,原来的数据不变)
批量删除
- SQL的映射文件
- mybatsi在批量删除时,当传入一个int[]集合时
mybatis会将数组参数,封装为一个Map集合
* 默认:collection的名称为array
* 使用@Param注解改变map集合的默认key名称
《foreach》指要遍历那个数组,separator表示分隔符
open=“(” close=“)” 也可添加进去,方便开发
通过@Param来修改名称
以上是关于mybatis 手动/自动触发事务回滚的主要内容,如果未能解决你的问题,请参考以下文章