sprint test 添加事务回滚机制
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 添加事务回滚机制相关推荐
- seata分布式事务回滚机制是如何实现的
本文来说下seata分布式事务回滚机制是如何实现的 文章目录 概述 概述
- Mysql事务回滚机制与原理
Mysql事务回滚机制与原理 文章目录 Mysql事务回滚机制与原理 一.事务回滚机制 二.使用到的技术讨论 三.redo log和undo log介绍 3.1 redo log 3.2 undo l ...
- redis事务及类事务回滚机制
目录 前言 一.redis事务 二.通过redis-cli体验redis事务相关命令 1.开启事务 2.放弃事务 3.redis事务中的命令正确而数据类型错误.命令错误时的执行情况 (1).第一种情况 ...
- java中的事务回滚_Spring中的事务回滚机制
问题:在Java项目汇中,添加@Transactional注解,报错之后,事务回滚未生效,数据仍插入数据库中.经查看报错位置位于新增成功之后.空指针异常. 一.特性 先了解一下@Transaction ...
- So easy Spring事务回滚机制
文章目录 事务控制的3种方式 伪代码 为什么不会滚呢 解决方案 声明式事务 注解事务 使用位置 基本用法 异常抛出 手动事务 设置回滚代码 设置回滚点 存储引擎 事务控制的3种方式 编程式事务:直接在 ...
- mysql的回滚机制_mysql事务回滚机制概述
应用场景: 银行取钱,从ATM机取钱,分为以下几个步骤 1 登陆ATM机,输入密码: 2 连接数据库,验证密码: 3 验证成功,获得用户信息,比如存款余额等: 4 用户输入需要取款的金额,按下确认键: ...
- MySQL中的事务回滚机制
在 MySQL 中,恢复机制是通过回滚日志(undo log)实现的,所有事务进行的修改都会先记录到这个回滚日志中,然后在对数据库中的对应行进行写入. 当事务已经被提交之后,就无法再次回滚了. 回滚日 ...
- spring的事务回滚机制,事务原理
1.spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: ...
- Redis事务,ACID性质,但是Redis不支持事务回滚
ACID性质 1.原子性 事物具有原子性指的是,数据库将事务中的多个操作当做一个整体来执行,服务器要么执行事务中的所有操作,要么就一个操作也不执行. 对于Redis的事务功能来说,事务队列中的命令要么 ...
- mysql 事务回滚_简短截说阐述redis中事务的使用
我们知道,在关系型数据库中,比如mysql,如果要使用事务,首先向数据库服务器发送 BEGIN ,然后执行各个相互一致的写操作和读操作,最后,用户可以选择发送 COMMIT 来确认之前所做的修改,或者 ...
最新文章
- 评分卡模型、WOE(Weight of Evidence)和IV(Information Value)
- 人脸识别 性能评价指标
- SESSION 页面刷新 失效
- java处理excel(java使用Apache POI处理Excel)
- php 多维素组添加下级,php中如何将元素添加到多维数组
- Django框架简介
- GUI编程tkinter模块常用参数(python3)
- Centos 安装Java JDK8
- cad尺寸标注快捷键_CAD中还能这样快速标注尺寸?怪不得同事天天准时下班
- python名字排序_python 中文排序(按拼音)
- fabs linux头文件,C/C++ algorithm头文件的max()、min()、abs()和math头文件的fabs(
- python开题报告范文样本,毕业论文开题报告怎么写
- c语言程序0到1000的素数,C语言实现之100-1000以内素数的等差数列
- cmake中的INTERFACE_INCLUDE_DIRECTORIES是干什么的
- Stimulsoft 报表工具单元格内换行
- 【多线程】(二)Java.lang.Process的思考
- 团队作业第六次——团队Github实战训练
- 开启子进程的两种方式
- solr常见问题整理
- gitHub设置SSH Key
热门文章
- C++的四种强制转型形式:
- CString int转换
- HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效...
- 走遍中国《中国古镇全集》
- 【Henu ACM Round#19 A】 Vasya the Hipster
- VisualVM初次使用BTrace功能方法步骤
- jQuery 遍历函数(w3school)
- 记录.NET Core部署到Linux之.NET Core环境搭建(1)
- 关于Mybatis的一点小记录(parameterType)
- 审计 6 SSRF和任意文件读取