SpringBoot數(shù)據(jù)層測(cè)試事務(wù)回滾的實(shí)現(xiàn)流程
數(shù)據(jù)層測(cè)試事務(wù)回滾
pom.xml導(dǎo)入對(duì)應(yīng)的一些坐標(biāo),mysql,Mp,等
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>dao下
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pojo.Person;
import org.apache.ibatis.annotations.Mapper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
@Mapper//使用注解配置映射
@Component//給spring管理,方便注入
public interface PersonDao extends BaseMapper<Person> {
}pojo對(duì)象
package com.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("tb_user")
public class Person {
private Long id;
private String username;
private String password;
private String gender;
private String addr;
}service
package com.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pojo.Person;
public interface PersonService extends IService<Person> {
}serviceImpl
@Service
public class PersonServiceImpl extends ServiceImpl<PersonDao, Person> implements PersonService {
}PersonServiceTest類下
package com.serviceTest;
import com.pojo.Person;
import com.service.PersonService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.transaction.annotation.Transactional;
@SpringBootTest
@Transactional
@Rollback(false)
public class PersonServiceTest {
@Autowired
private PersonService personService;
@Test
void testAdd(){
Person person = new Person();
person.setUsername("測(cè)試回滾2");
person.setPassword("1");
person.setGender("1");
person.setAddr("1");
System.out.println(personService.save(person));
}
}加上@Transactional運(yùn)行

加上@Transactional和@Rollback(false)運(yùn)行

為了測(cè)試用例添加事務(wù),加上@Transactional,SpringBoot會(huì)對(duì)測(cè)試用例對(duì)應(yīng)的事務(wù)提交操作進(jìn)行回滾,也就是springboot識(shí)別到這個(gè)是test,所以不會(huì)進(jìn)行提交事務(wù),但是會(huì)占用id。不會(huì)有數(shù)據(jù)顯示。
如果想在測(cè)試用例中提交事務(wù),可以通過@Rollback(false),不回滾,默認(rèn)值是true,加上false就不會(huì)回滾,測(cè)試數(shù)據(jù)就能在數(shù)據(jù)庫中顯示出來。
測(cè)試用例數(shù)據(jù)設(shè)定
測(cè)試用例數(shù)據(jù)通常采用隨機(jī)值進(jìn)行測(cè)試,使用SpringBoot提供的隨機(jī)數(shù)位器賦值

${random.int}表示隨機(jī)整數(shù)
${random.int(10)}表示10以內(nèi)的隨機(jī)數(shù)
${random.int(10,20)}表示10到20的隨機(jī)數(shù)
其中()可以是任意字符,如[ ],@@都可以。
配置文件下
personRandom:
age: ${random.int(1,100)}
name: ${random.value}
detail: ${random.uuid}
定義一個(gè)類接收
@Data
@Component//給spring管理
@ConfigurationProperties(prefix = "personrandom")
public class Person {
private String name;
private String age;
private String detail;
}測(cè)試類下
@SpringBootTest
public class RandomTest {
@Autowired
private Person person;
@Test
public void KC(){
System.out.println(person);
}
}運(yùn)行結(jié)果

到此這篇關(guān)于SpringBoot數(shù)據(jù)層測(cè)試事務(wù)回滾的實(shí)現(xiàn)流程的文章就介紹到這了,更多相關(guān)SpringBoot事務(wù)回滾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java11新特性之集合轉(zhuǎn)換為數(shù)組的方法
Java11引入了一種將帶有泛型的集合轉(zhuǎn)換為帶有泛型的數(shù)組的簡(jiǎn)單方法,本文通過實(shí)例代碼介紹java11新特性之集合轉(zhuǎn)換為數(shù)組的操作方法,感興趣的朋友跟隨小編一起看看吧2024-06-06
spring AOP自定義注解方式實(shí)現(xiàn)日志管理的實(shí)例講解
下面小編就為大家分享一篇spring AOP自定義注解方式實(shí)現(xiàn)日志管理的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Java類之間的關(guān)系圖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在Java以及其他的面向?qū)ο笤O(shè)計(jì)模式中,類與類之間主要有6種關(guān)系,他們分別是:依賴、關(guān)聯(lián)、聚合、組合、繼承、實(shí)現(xiàn)。他們的耦合度依次增強(qiáng),有興趣的可以了解一下2017-08-08
關(guān)于Java8 parallelStream并發(fā)安全的深入講解
這篇文章主要給大家介紹了關(guān)于Java8 parallelStream并發(fā)安全的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
Intellij IDEA Debug調(diào)試技巧(小結(jié))
這篇文章主要介紹了Intellij IDEA Debug調(diào)試技巧(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
SpringMVC+Mybatis二維碼實(shí)現(xiàn)多平臺(tái)付款(附源碼)
本文主要實(shí)現(xiàn)微信支付寶等支付平臺(tái)合多為一的二維碼支付,并且實(shí)現(xiàn)有效時(shí)間內(nèi)支付有效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
java List循環(huán)與Map循環(huán)的總結(jié)
這篇文章主要介紹了java List循環(huán)與Map循環(huán)的總結(jié)的相關(guān)資料,并附代碼實(shí)例,幫助大家學(xué)習(xí)理解,需要的朋友可以參考下2016-11-11

