從零開始學SpringBoot2.x(13-SpringBoot中使用Mybatis(XML篇))

在上一篇文章“SpringBoot中使用Mybatis(註解篇)”中我與大家簡單分享瞭如何在SpringBoot中以註解書寫SQL的方式來使用Mybatis,但在實際的開發過程中,這種方式與代碼相耦合,不便於維護,並且過於複雜的SQL語句難以閱讀,所以一般會用XML的方式來寫SQL語句。

 

其實過程都差不多,只不過把SQL移到XML中罷了!

 

開擼~

 

1、pom.xml如下:

<dependencies>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!-- mysql驅動-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!-- druid連接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.9</version>
        </dependency>
        <!-- 測試組件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

 

 

2、整體工程目錄如下:

 

 

3、application.yml配置如下:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mybatis?&characterEncoding=utf-8&useSSL=false #數據庫的連接信息
    driver-class-name: com.mysql.jdbc.Driver #數據庫驅動
    username: root #數據庫的用戶名
    password: 123456 #數據庫的密碼
    type: com.alibaba.druid.pool.DruidDataSource #使用druid連接池
mybatis:
  configuration:
    map-underscore-to-camel-case: true #開啓mybatis駝峯轉下劃線命名規則規則
  mapper-locations: classpath:/mapper/**/*.xml #配置mybatis映射文件路徑
  type-aliases-package: com.xiao.entity #配置實體類包名

 

由於其他的代碼與上一篇文章基本一致,在這裏我就不過多贅述了!

 

4、UserMapper.xml:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- namespace對應接口全類名 -->
<mapper namespace="com.xiao.mapper.UserMapper">
    <!-- id要與接口中方法名保持一致,入參要入接口方法中入參類型保持一致,返回值要與實體類對應
    (一下這種方式要求表中的字段按駝峯命名規則轉換後要與實體類中屬性名稱保持一致) -->
    <select id="getUserById" parameterType="java.lang.Long" resultType="com.xiao.entity.User">
        select * from tb_user where id = #{id}
    </select>
</mapper>

 

 

5、來看看測試類:

package com.xiao.mapper;

import com.xiao.entity.User;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import static org.junit.Assert.*;

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {

    @Autowired
    private UserMapper userMapper;


    @Test
    public void getUserById(){
        User user = userMapper.getUserById(1);
        System.out.println(user);
        Assert.assertNotNull(user);
    }

}

 

6、數據庫信息如下:

 

 

7、運行測試類,結果如下:

 

 

可以看到,數據已被成功查詢!

 

關於Mybatis的XML映射文件還有很多東西,包括還可以使用工具根據數據庫自動生成,在以後的文章中我再與大家分享!

 

源碼鏈接:

https://github.com/devilyang123/SpringBoot-Learning/tree/master/springboot-mybatis-xml

 

 

 


歡迎關注我的個人公衆號“笑笑是一個碼農”,第一時間獲取最新文章。

您的關注,就是支持我持續寫作的最大動力!

還可以免費領取前後端全站學習視頻資料呦~

個人微信號,如需添加微信,請備註來源,因爲媽媽從小就告訴我不要隨便跟陌生人聊天!(嘿嘿~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章