spring-boot集成mybatis-generator

原创
2018/01/08 17:28
阅读数 1K

通用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接口来操作数据库了

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部