spring-boot整合mybatis-generator
阿新 • • 發佈:2018-11-16
通用Mapper在1.0.0版本的時候增加了MyBatis Generator(以下簡稱MBG)外掛,使用該外掛可以很方便的生成實體類、Mapper介面以及對應的XML檔案。
下面介紹了mybatis-generator在spring-boot中的使用過程
專案依賴 pom.xml
我使用mysql作為資料庫,使用了Myatis通用Mapper,和pagehelper分頁外掛,下面是他們的依賴
<!-- Spring Boot Mybatis 依賴 --> <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <!--mapper--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>1.1.4</version> </dependency> <!--pagehelper--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.1</version> </dependency> <!-- Mybatis Generator --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> <scope>compile</scope> <optional>true</optional> </dependency> <!-- MySQL 連線驅動依賴 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency>
Mybatis-Generator的maven外掛
在pom.xml的外掛列表中加入mybatis-generator的maven外掛,這樣就可以使用mvn mybatis-generator:generate
命令來生成實體類、Mapper介面以及對應的XML檔案。
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.3.6</version> </dependency> </dependencies> </plugin>
Mybatis-Generator配置
上面pom.xml中generator外掛的配置檔案目錄指向了
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
那麼我們建立/src/main/resources/generator/generatorConfig.xml
這個配置檔案,內容如下
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <properties resource="application.properties"/> <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat"> <property name="beginningDelimiter" value="`"/> <property name="endingDelimiter" value="`"/> <plugin type="tk.mybatis.mapper.generator.MapperPlugin"> <!--這裡修改成統一的Mapper父介面--> <property name="mappers" value="com.example.mapper.util.MyMapper"/> </plugin> <!--這裡填寫自己的資料庫連結--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.11.22:3306/tongjh_demo?characterEncoding=utf8" userId="tongjh" password="tong123"> </jdbcConnection> <!--這裡填寫生成的表實體類目錄--> <javaModelGenerator targetPackage="com.example.mapper.domain" targetProject="src/main/java"/> <!--這裡填寫生成的表xml目錄--> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/> <!--這裡填寫生成的表mapper目錄--> <javaClientGenerator targetPackage="com.example.mapper.mapper" targetProject="src/main/java" type="XMLMAPPER"/> <!--這裡的%萬用字元表示庫裡面的所有表--> <table tableName="%"> <!--mysql 配置--> <generatedKey column="id" sqlStatement="Mysql" identity="true"/> <!--oracle 配置--> <!--<generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual" identity="false" type="pre"/>--> </table> </context> </generatorConfiguration>
建立自己的統一Mapper介面
新建com.example.mapper.util.MyMapper介面,作為所有生成的mapper介面的統一父介面
package com.example.mapper.util;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
public interface MyMapper<T> extends Mapper<T>,MySqlMapper<T> {
//TODO
//FIXME 特別注意,該介面不能被掃描到,否則會出錯
}
使用maven命令生成資料庫表的實體類、Mapper介面以及對應的XML檔案。
mvn mybatis-generator:generate
- 開啟com.example.mapper.mapper目錄,檢視生成的mapper介面
- 開啟com.example.mapper.domain目錄,檢視生成的實體類
- 開啟src/resources/mapper目錄,檢視生成的表xml
配置主入口檔案 MapperApplication
必須在主入口檔案中新增MapperScan
註解,程式才能掃描到該目錄下的所有mapper介面。
package com.example.mapper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(basePackages = "com.example.mapper.mapper")
public class MapperApplication {
public static void main(String[] args) {
SpringApplication.run(MapperApplication.class, args);
}
}
下面就可以使用mapper介面來操作資料庫了