SpringBoot 整合MyBatis、Junit5的實(shí)踐過程
一、前言
自從使用SpringBoot后,前言部分不需要再過多贅述Maven的坐標(biāo)了,但是由于我們需要集成外部的工具(框架),所以可能還是需要引入坐標(biāo),有些在創(chuàng)建模塊的時(shí)候可以使用圖形化界面勾選,有些依舊只能在pom.xml中手動(dòng)添加,本文需要的坐標(biāo)如下:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>3.0.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>二、整合Junit
正常創(chuàng)建一個(gè)SpringBoot的模塊,這里先模擬一個(gè)Service類,在里面設(shè)計(jì)一個(gè)add方法:
@Service
public class UserService {
public void add(){
System.out.println("add...");
}
}編寫測試類如下:
/**
* userService的測試類
*/
//junit5
@ExtendWith(SpringExtension.class)
//junit4
//@RunWith(SpringRunner.class)
//@SpringBootTest(classes = SpringBootTestApplication.class)
@SpringBootTest//當(dāng)測試類的包名和java中主包相同 或 測試類包名屬于主包的子包,可以不用寫(classes = SpringBootTestApplication.class)
class UserServiceTest {
@Autowired
private UserService userService;
@Test
public void testAdd(){
userService.add();
}
}注意:這里我演示的是Junit5的測試注解,如果需要使用Junit4,則需要導(dǎo)入Junit4的包,4和5的注解略有不同。

效果如下(不必關(guān)注警告,這是在提示未來版本可能會(huì)取消掉某個(gè)功能):

三、整合MyBatis
1.注解開發(fā)
首先先創(chuàng)建一個(gè)表,用于模擬各種操作(這里我們只演示查詢操作)

同時(shí)需要一個(gè)User類來封裝數(shù)據(jù):
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}然后我們需要在yml配置文件中配置數(shù)據(jù)源:
# datasource
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql:///springboot
password: 123456
username: root這里我們直接創(chuàng)建一個(gè)映射接口,使用注解開發(fā),其中@Mapper表示掃描這個(gè)映射接口,自動(dòng)生成這個(gè)接口的實(shí)現(xiàn)類,里面我們只寫一個(gè)查詢方法。
@Mapper
public interface UserMapper {
@Select("select * from t_user")
public List<User> findAll();
}創(chuàng)建測試類:
@ExtendWith(SpringExtension.class)
@SpringBootTest
class SpringBootMybatisApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
public void testFindAll1() {
List<User> list = userMapper.findAll();
System.out.println(list);
}
}效果如下:

2.xml配置
雖然注解相對(duì)方便,但是在多表操作的大項(xiàng)目中,使用xml配置映射文件會(huì)讓可讀性更高,并且許多老項(xiàng)目一直沿用的xml配置,所以依舊需要了解xml的編寫方式。
首先是接口,我們這里重新寫一個(gè):
@Mapper
public interface UserXmlMapper {
public List<User> findAll();
}然后就是對(duì)應(yīng)的xml映射文件:
<mapper namespace="com.yds.springbootmybatis.mapper.UserXmlMapper">
<select id="findAll" resultType="user">
select * from t_user
</select>
</mapper>同時(shí),既然已經(jīng)使用了xml配置,就必須配置核心配置文件,這里我們直接寫在yml配置文件中,也就是說,我們?cè)趛ml配置文件中配置了兩個(gè)東西,一個(gè)是數(shù)據(jù)源,一個(gè)是核心配置文件(在核心配置文件中取了別名):
#mybatis mybatis: mapper-locations: classpath:mapper/*Mapper.xml #mapper的映射文件路徑 type-aliases-package: com.yds.springbootmybatis.domain #vconfig-location: #指定mybatis的核心配置文件的
同時(shí)重寫測試類:
@ExtendWith(SpringExtension.class)
@SpringBootTest
class SpringBootMybatisApplicationTests {
@Autowired
private UserMapper userMapper;
@Autowired
private UserXmlMapper userXmlMapper;
@Test
public void testFindAll1() {
List<User> list = userMapper.findAll();
System.out.println(list);
}
@Test
public void testFindAll2() {
List<User> list = userXmlMapper.findAll();
System.out.println(list);
}
}效果如下:

到此這篇關(guān)于SpringBoot 整合MyBatis、Junit5的文章就介紹到這了,更多相關(guān)SpringBoot 整合MyBatis、Junit5內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot整合MyBatis和SpringBoot整合MyBatis-Plus教程
- SpringBoot整合mybatisPlus實(shí)現(xiàn)批量插入并獲取ID詳解
- SpringBoot整合Mybatis-plus關(guān)鍵詞模糊查詢結(jié)果為空
- SpringBoot + Mybatis Plus 整合 Redis的詳細(xì)步驟
- 全網(wǎng)最新springboot整合mybatis-plus的過程
- SpringBoot3整合Mybatis完整版實(shí)例
- Springboot整合mybatis-plus使用pageHelper進(jìn)行分頁(使用步驟)
- Springboot整合Mybatis和SQLite的詳細(xì)過程
- SpringBoot+JUnit5+MockMvc+Mockito單元測試的實(shí)現(xiàn)
相關(guān)文章
java中實(shí)現(xiàn)兼容ie6 7 8 9的spring4+websocket
這篇文章主要介紹了java中實(shí)現(xiàn)兼容ie6 7 8 9的spring4+websocket程序代碼,十分的簡單實(shí)用,有需要的小伙伴可以參考下。2015-06-06
Java中的Lambda表達(dá)式及其應(yīng)用小結(jié)
Java中的Lambda表達(dá)式是一項(xiàng)極具創(chuàng)新性的特性,它使得Java代碼更加簡潔和高效,尤其是在集合操作和并行處理方面,這篇文章主要介紹了Java中的Lambda表達(dá)式及其應(yīng)用,需要的朋友可以參考下2025-04-04
使用?mybatis?自定義日期類型轉(zhuǎn)換器的示例代碼
這篇文章主要介紹了使用?mybatis?自定義日期類型轉(zhuǎn)換器的示例代碼,這里使用mybatis中的typeHandlers?實(shí)現(xiàn)的,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
SpringBoot 自定義+動(dòng)態(tài)切換數(shù)據(jù)源教程
這篇文章主要介紹了SpringBoot 自定義+動(dòng)態(tài)切換數(shù)據(jù)源教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Spring Boot web項(xiàng)目的TDD流程
TDD(Test-driven development) 測試驅(qū)動(dòng)開發(fā),簡單點(diǎn)說就是編寫測試,再編寫代碼。這是首要一條,不可動(dòng)搖的一條,先寫代碼后寫測試的都是假TDD。2021-05-05
Jenkins安裝多個(gè)jdk版本并在項(xiàng)目中選擇對(duì)應(yīng)jdk版本
在使用jenkins構(gòu)建項(xiàng)目時(shí)會(huì)遇到不同的job需要配置不同版本的jdk,下面這篇文章主要給大家介紹了關(guān)于Jenkins安裝多個(gè)jdk版本并在項(xiàng)目中選擇對(duì)應(yīng)jdk版本的相關(guān)資料,需要的朋友可以參考下2024-03-03
從基礎(chǔ)到實(shí)戰(zhàn)全解析Java加載Properties文件的六種方式
本文詳細(xì)介紹了Java中Properties文件的六種加載方式,每種方式都有其適用場景、實(shí)現(xiàn)步驟、優(yōu)缺點(diǎn)及最佳實(shí)踐,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-12-12
Java實(shí)現(xiàn)簡易HashMap功能詳解
這篇文章主要介紹了Java實(shí)現(xiàn)簡易HashMap功能,結(jié)合實(shí)例形式詳細(xì)分析了Java實(shí)現(xiàn)HashMap功能相關(guān)原理、操作步驟與注意事項(xiàng),需要的朋友可以參考下2020-05-05

