java springboot测试类Transactional解决 测试过程中在数据库留下测试数据问题

好 目前 我们已经完成了表现层对应的测试了

但这里有个坑 如果我们在执行某个声明周期时 包含了测试的过程 它会在数据库中留下一条数据

但真实企业开发 绝对不允许 过一遍留一组数据的

那么 我们的期望就是 执行测试过程 但不要留下任何数据

这是我们的数据库表

然后 这里 我们在测试类中 调用一下连数据库的函数 测试一下添加操作

然后 我们右键运行函数

然后再回头查看数据库

我们右键表 然后选择刷新表

然后再重新打开 好家伙 这下数据还进来了

我们这里加一个注解 Transactional 这是 spring 添加事务的注解

我们再次右键运行

然后 我们回头 刷新 查看数据库表

这下数据就没进来了

或者说 其实数据已经进来了 但是 又被事务回滚了 Transactional 和 Rollback 可以配合使用

不过一般来讲 Rollback 用不到

Rollback 控制事务是否回滚 默认值是true

我们将代码改成这样

Rollback设为false 表示 事务不回滚 然后我们右键运行之后查看数据库表

我们数据就进来了 因为不回滚了

相关推荐
小光学长3 分钟前
基于vue框架的东莞市二手相机交易管理系统5yz0u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
爱晒太阳的小老鼠3 分钟前
策略模式-枚举实现
java·策略模式
77tian10 分钟前
设计模式的原理及深入解析
java·开发语言·单例模式·设计模式·代理模式·享元模式·原型模式
Freedom℡13 分钟前
Spark,SparkSQL操作Mysql, 创建数据库和表
数据库·spark
羊羊羊i38 分钟前
Redis进阶知识
数据库·redis·缓存
枷锁—sha41 分钟前
SQL注入——Sqlmap工具使用
数据库·sql·安全·web安全
会飞的架狗师1 小时前
【Spring Cloud Gateway】Nacos整合遇坑记:503 Service Unavailable
java·开发语言
进击的CJR2 小时前
MySQL 8.0 OCP 英文题库解析(五)
数据库·mysql·开闭原则
重生之后端学习2 小时前
02-前端Web开发(JS+Vue+Ajax)
java·开发语言·前端·javascript·vue.js
观无5 小时前
数据库DDL
数据库·oracle