1.原因:

单元测试的时候频繁操作数据库需要修改很多数据,造成不必要的操作,添加事务之后就可以重复对一条数据进行操作,并且在返回结果后进行回滚.

2.解决:

原先继承的是  AbstractJUnit4SpringContextTests  这个类,这个类不支持事务机制,换成 AbstractTransactionalJUnit4SpringContextTests 后则默认每条测试方法都是完成后回滚.

@ContextConfiguration(locations = {"classpath:config/spring/applicationContext-common.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class SpringTestBase extends AbstractTransactionalJUnit4SpringContextTests{}

    @Test@Rollback(value=true)//测试删除关系public void deleteTest() {int i = relationMapper.deleteById(1);Assert.assertEquals(1, i);}

@Rollback在 AbstractTransactionalJUnit4SpringContextTests 类下默认为true,如果不需要回滚则改为false, 通过@Rollback可以单独控制每个方法的事务机制.

转载于:https://www.cnblogs.com/lishuaiqi/p/10919058.html

sprint test 添加事务回滚机制相关推荐

  1. seata分布式事务回滚机制是如何实现的

    本文来说下seata分布式事务回滚机制是如何实现的 文章目录 概述 概述

  2. Mysql事务回滚机制与原理

    Mysql事务回滚机制与原理 文章目录 Mysql事务回滚机制与原理 一.事务回滚机制 二.使用到的技术讨论 三.redo log和undo log介绍 3.1 redo log 3.2 undo l ...

  3. redis事务及类事务回滚机制

    目录 前言 一.redis事务 二.通过redis-cli体验redis事务相关命令 1.开启事务 2.放弃事务 3.redis事务中的命令正确而数据类型错误.命令错误时的执行情况 (1).第一种情况 ...

  4. java中的事务回滚_Spring中的事务回滚机制

    问题:在Java项目汇中,添加@Transactional注解,报错之后,事务回滚未生效,数据仍插入数据库中.经查看报错位置位于新增成功之后.空指针异常. 一.特性 先了解一下@Transaction ...

  5. So easy Spring事务回滚机制

    文章目录 事务控制的3种方式 伪代码 为什么不会滚呢 解决方案 声明式事务 注解事务 使用位置 基本用法 异常抛出 手动事务 设置回滚代码 设置回滚点 存储引擎 事务控制的3种方式 编程式事务:直接在 ...

  6. mysql的回滚机制_mysql事务回滚机制概述

    应用场景: 银行取钱,从ATM机取钱,分为以下几个步骤 1 登陆ATM机,输入密码: 2 连接数据库,验证密码: 3 验证成功,获得用户信息,比如存款余额等: 4 用户输入需要取款的金额,按下确认键: ...

  7. MySQL中的事务回滚机制

    在 MySQL 中,恢复机制是通过回滚日志(undo log)实现的,所有事务进行的修改都会先记录到这个回滚日志中,然后在对数据库中的对应行进行写入. 当事务已经被提交之后,就无法再次回滚了. 回滚日 ...

  8. spring的事务回滚机制,事务原理

    1.spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: ...

  9. Redis事务,ACID性质,但是Redis不支持事务回滚

    ACID性质 1.原子性 事物具有原子性指的是,数据库将事务中的多个操作当做一个整体来执行,服务器要么执行事务中的所有操作,要么就一个操作也不执行. 对于Redis的事务功能来说,事务队列中的命令要么 ...

  10. mysql 事务回滚_简短截说阐述redis中事务的使用

    我们知道,在关系型数据库中,比如mysql,如果要使用事务,首先向数据库服务器发送 BEGIN ,然后执行各个相互一致的写操作和读操作,最后,用户可以选择发送 COMMIT 来确认之前所做的修改,或者 ...

最新文章

  1. 评分卡模型、WOE(Weight of Evidence)和IV(Information Value)
  2. 人脸识别 性能评价指标
  3. SESSION 页面刷新 失效
  4. java处理excel(java使用Apache POI处理Excel)
  5. php 多维素组添加下级,php中如何将元素添加到多维数组
  6. Django框架简介
  7. GUI编程tkinter模块常用参数(python3)
  8. Centos 安装Java JDK8
  9. cad尺寸标注快捷键_CAD中还能这样快速标注尺寸?怪不得同事天天准时下班
  10. python名字排序_python 中文排序(按拼音)
  11. fabs linux头文件,C/C++ algorithm头文件的max()、min()、abs()和math头文件的fabs(
  12. python开题报告范文样本,毕业论文开题报告怎么写
  13. c语言程序0到1000的素数,C语言实现之100-1000以内素数的等差数列
  14. cmake中的INTERFACE_INCLUDE_DIRECTORIES是干什么的
  15. Stimulsoft 报表工具单元格内换行
  16. 【多线程】(二)Java.lang.Process的思考
  17. 团队作业第六次——团队Github实战训练
  18. 开启子进程的两种方式
  19. solr常见问题整理
  20. gitHub设置SSH Key

热门文章

  1. C++的四种强制转型形式:
  2. CString int转换
  3. HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效...
  4. 走遍中国《中国古镇全集》
  5. 【Henu ACM Round#19 A】 Vasya the Hipster
  6. VisualVM初次使用BTrace功能方法步骤
  7. jQuery 遍历函数(w3school)
  8. 记录.NET Core部署到Linux之.NET Core环境搭建(1)
  9. 关于Mybatis的一点小记录(parameterType)
  10. 审计 6 SSRF和任意文件读取