Like Share Discussion Bookmark Smile

J.J. Huang   2019-03-29   Spring Boot   瀏覽次數:次   DMCA.com Protection Status

SpringBoot - 第十五章 | MyBatis整合 (註解方式)

在前面的文章中 第十四章 - SpringBoot Spring-data-jpa訪問資料庫 介紹如何使用Spring-data-jpa的基本訪問資料庫。

這邊來介紹使用Spring Boot整合MyBatis,通過註解的方式來做使用。

什麼是MyBatis?

MyBatis是一款優秀的持久層框架,它支持定制化SQL,存儲過程以及高級映射,MyBatis避免了幾乎所有的JDBC代碼和手動設置參數以及獲取結果集,MyBatis可以使用簡單的XML或註解來配置和映射原生類型,接口和Java的POJO(Plain Old Java Objects,普通老式Java對象)為資料庫中的記錄。

使用範例

資料庫範例

這邊用Customer來做範例

1
2
3
4
5
6
7
8
9
10
11
DROP TABLE IF EXISTS `customer`;
CREATE TABLE `customer` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(64) DEFAULT NULL COMMENT '姓名',
`age` smallint(3) DEFAULT NULL COMMENT '年齡',
`create_by` varchar(50) NOT NULL COMMENT '建立人員',
`create_dt` datetime NOT NULL COMMENT '建立時間',
`modify_by` varchar(50) DEFAULT NULL COMMENT '修改人員',
`modify_dt` datetime DEFAULT NULL COMMENT '修改時間',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

相關配置

  • 加入pom的依賴

    1
    2
    3
    4
    5
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.0.0</version>
    </dependency>
  • src/main/resources/application.properties中配置資料源訊息

    1
    2
    3
    4
    5
    # 資料源配置
    spring.datasource.url=jdbc:mysql://localhost:3306/test
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

建立實體 (Entity)

這邊要注意到每個欄位對應的名稱需要一致。如果要設定定義,需要透過@Results設定,下方會解釋使用方式。

建立資料訪問對象 (Dao)

這邊範例使用了MySQL,要注意SQL語法的表名稱大小寫。

單元測試

測試結果

@Results的設定方式

1
2
3
4
5
6
7
8
9
10
11
@Results({
@Result(property = "id", column = "id"),
@Result(property = "name", column = "name"),
@Result(property = "age", column = "age"),
@Result(createBy = "name", column = "create_by"),
@Result(createDt = "name", column = "create_dt"),
@Result(modifyBy = "name", column = "modify_by"),
@Result(modifyDt = "name", column = "modify_dt")
})
@Select("select * from customer where name = #{name}")
Customer findByName(@Param("name") String name);

@Results這邊沒有實際去做實作測試,所以如果有錯誤請多指教。謝謝。

這邊做了非常簡的使用方式,後續會在針對其使用做詳解,還有xml使用的方式。

註:以上參考了
程序猿DD-翟永超Spring Boot整合MyBatis 文章。
江南一点雨最简单的SpringBoot整合MyBatis教程 文章。