springboot集成mybatis-generator自动生成代码

1、pom.xml 添加依赖:

        <!--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.5</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>
<scope>runtime</scope>
</dependency>

 

在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>

 

2、在resourse文件下新建generator文件夹,在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.yml"/>

    <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.aibaiyang.idemo.util.MyMapper"/>
        </plugin>

        <!--这里填写自己的数据库链接-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://47.107.139.169:3306/test?characterEncoding=utf8"
                        userId="root"
                        password="123456">
            <property name="nullCatalogMeansCurrent" value="true" />
        </jdbcConnection>

        <!--这里填写生成的表实体类目录-->
        <javaModelGenerator targetPackage= "com.aibaiyang.idemo.entity" targetProject="src/main/java"/>

        <!--这里填写生成的表xml目录-->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>

        <!--这里填写生成的表mapper目录-->
        <javaClientGenerator targetPackage="com.aibaiyang.idemo.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>

 

其中<properties resource="application.yml"/>对应的是项目的yml配置文件。

3、创建数据库 test 和 表  course、student

CREATE TABLE `course` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(255) NOT NULL,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `course_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

 

4、新建名称为com.aibaiyang.demo.mapper.util的包,并新建MyMapper接口,内容如下:

package com.aibaiyang.idemo.util;

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

/**
 * @Author zhong guo
 * @Date 2019/10/5 22:42
 * @description
 **/
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
    //TODO
    //FIXME 特别注意,该接口不能被扫描到,否则会出错
}

 

5、执行mvn命令生成代码:mvn mybatis-generator:generate

     将在com.aibaiyang.idemo.mapper、com.aibaiyang.idemo.entity、resourse/mapper 下生成相应的代码;

     每次生成代码会把以前代码覆盖,生成完代码后把相关代码拷贝到实际项目中;

 

6、在主程序入口添加 @MapperScan注解,使用mapper接口

package com.aibaiyang.idemo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan(basePackages = "com.aibaiyang.idemo.mapper")
public class IdemoApplication {

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

}

 

7、idemo-mybatis-auto

 

8、参考:https://my.oschina.net/tongjh/blog/1604115

 

posted @ 2019-10-06 16:30  艾白羊  阅读(317)  评论(0编辑  收藏  举报