Spring Boot 整合 Mybatis 和 MySQL

gary-liu發表於2017-06-01

Spring Boot 使用 1.5.3.RELEASE

新增依賴

pom.xml 檔案中新增 mybatis 和 MySQL 依賴包

<properties>
        <mybatis-spring-boot>1.3.0</mybatis-spring-boot>
        <mysql-connector>5.1.39</mysql-connector>
    </properties>

    <!-- Spring Boot Mybatis 依賴 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis-spring-boot}</version>
        </dependency>

        <!-- MySQL 連線驅動依賴 -->
        <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql-connector}</version>
        </dependency>

mybatis 和 db 配置

application.properties 中新增如下配置

## 資料來源配置
spring.datasource.url=jdbc:mysql://localhost:3306/mytest?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=0123456789
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

## Mybatis 配置
mybatis.typeAliasesPackage=com.lzhenxing.myproject.domain
mybatis.mapperLocations=classpath:mapper/*.xml

Dao 層程式碼

這塊內容和普通的 mybatis 寫法差不多,只簡單說下,建個 dao 層的包,建立 UserDao 介面;新建 domain 包,建立一個 User PO;在 resource 目錄下新建 mapper 包,存放 *Mapper.xml 檔案。

不要忘了加上 dao 包掃描註解

@SpringBootApplication
// mapper 介面類掃描包配置
@MapperScan("com.lzhenxing.myproject.dao")
public class MyprojectApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyprojectApplication.class, args);
    }
}

單元測試和以前 spring 類似,或者看我之前的有關 spring boot 測試文章。

專案demo:https://github.com/lzx2011/springBootPractice

常見問題

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.2.0</version>
        </dependency>

開始引用 1.2.0 版本時會報下面這個錯誤

Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

換成 1.3.0 就可以了,具體原因我現在也不太清楚,估計和依賴的 mybatis-spring 的版本有關,求告知。

相關文章