最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot 整合MyBatis、Junit5的實(shí)踐過程

 更新時(shí)間:2025年10月21日 09:08:51   作者:YDS829  
本文介紹了SpringBoot集成JUnit5和MyBatis的開發(fā)實(shí)踐,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

一、前言

自從使用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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中實(shí)現(xiàn)兼容ie6 7 8 9的spring4+websocket

    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á)式及其應(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?自定義日期類型轉(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ù)源教程

    這篇文章主要介紹了SpringBoot 自定義+動(dòng)態(tài)切換數(shù)據(jù)源教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring Boot web項(xiàng)目的TDD流程

    Spring Boot web項(xiàng)目的TDD流程

    TDD(Test-driven development) 測試驅(qū)動(dòng)開發(fā),簡單點(diǎn)說就是編寫測試,再編寫代碼。這是首要一條,不可動(dòng)搖的一條,先寫代碼后寫測試的都是假TDD。
    2021-05-05
  • Java自定義異常類詳解及示例說明

    Java自定義異常類詳解及示例說明

    本文詳細(xì)講述了Java中自定義異常類的原理、使用場景及創(chuàng)建方法,包括為何使用自定義異常、如何創(chuàng)建和實(shí)例化,以及文件處理、用戶認(rèn)證和業(yè)務(wù)邏輯中的應(yīng)用示例,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • Jenkins安裝多個(gè)jdk版本并在項(xiàng)目中選擇對(duì)應(yīng)jdk版本

    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文件的六種方式

    從基礎(chǔ)到實(shí)戰(zhàn)全解析Java加載Properties文件的六種方式

    本文詳細(xì)介紹了Java中Properties文件的六種加載方式,每種方式都有其適用場景、實(shí)現(xiàn)步驟、優(yōu)缺點(diǎn)及最佳實(shí)踐,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-12-12
  • spring如何解決循環(huán)依賴問題

    spring如何解決循環(huán)依賴問題

    Spring在單例模式下用三級(jí)緩存設(shè)計(jì)解決setter方法注入bean屬性循環(huán)依賴問題,但無法解決多例Bean和構(gòu)造方法注入?yún)?shù)的循環(huán)依賴,三級(jí)緩存通過A、B兩對(duì)象互相注入屬性的過程解決循環(huán)依賴,其中,構(gòu)造方法的循環(huán)依賴無法解決是因?yàn)閯?chuàng)建對(duì)象會(huì)走構(gòu)造方法
    2024-10-10
  • Java實(shí)現(xiàn)簡易HashMap功能詳解

    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

最新評(píng)論

青田县| 腾冲县| 寿宁县| 含山县| 芒康县| 扶绥县| 盐边县| 新蔡县| 五寨县| 洞头县| 梁平县| 朝阳区| 孝义市| 双城市| 综艺| 衢州市| 礼泉县| 西和县| 缙云县| 屯门区| 黔江区| 通化县| 大宁县| 灵丘县| 青阳县| 樟树市| 尼玛县| 台东市| 永康市| 垫江县| 文化| 泊头市| 阜新市| 黔东| 塔城市| 宝鸡市| 通河县| 收藏| 齐齐哈尔市| 横山县| 化州市|