idea使用mybatis generator自动生成代码(mo

2018-10-27  本文已影响274人  韩明泽

mybatis的自动生成代码,网上主要有两种方式。一种是使用idea的插件生成,另外一种则是直接在项目中集成jar或在maven中导入依赖;然后配置generatorConfig.xml文件。两种方式各有利弊吧。第一种使用起来方便,但是不能定制。第二种虽然配置起来麻烦点,但是可以根据自己的情况进行定制。最近在学习springboot的时候看到另外一种自动生成的方式。在module中配置生成。(其实也就是第二种的另类使用)

1、在项目中创建module

image

2、配置module的pom.xml文件

在配置文件中加入下面代码:

<dependencies>
<!--MySQL数据库-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.41</version>
    </dependency>
    <!--mapper-->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>1.2.4</version>
    </dependency>
    <!-- mybatis 逆向生成工具  -->
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.3.2</version>
        <scope>compile</scope>
        <optional>true</optional>
    </dependency>
</dependencies>

3、配置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>
    <context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <!--指定生成的xxxMapper文件要继承的MyMapper类的路径-->
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="com.han.utils.MyMapper"/>
        </plugin>
        <!--连接数据库-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/testMybatisGenerator"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <!-- 对应生成的pojo所在包 -->
        <javaModelGenerator targetPackage="com.han.pojo"
                            targetProject="mybatis-generatorConfig/src/main/java"/>

        <!-- 对应生成的mapper所在目录 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject="mybatis-generatorConfig/src/main/resources"/>

        <!-- 配置mapper对应的java映射 -->
        <javaClientGenerator targetPackage="com.han.mapper"
                             targetProject="mybatis-generatorConfig/src/main/java"
                             type="XMLMAPPER"/>

        <!--添加要生成的数据库对应表名-->
        <table tableName="testTable"></table>
        
    </context>
</generatorConfiguration>

4、添加执行生成的java类

改java类主要执行自动生成代码,并且指定generatorConfig.xml文件的路径。

我的java类命名为GeneratorDisplay.java

package com.han.mybatis;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.util.ArrayList;
import java.util.List;


public class GeneratorDisplay {

    public void generator() throws Exception {

        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定逆向工程配置文件
        File configFile = new File("mybatis-generatorConfig/generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                callback, warnings);
        myBatisGenerator.generate(null);

    }
    public static void main(String[] args) throws Exception {
        try {
            GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

5、添加MyMappe类

该类要和在generatorConfig.xml中填写的路径要一致。


image

完整代码如下:

package com.han.utils;

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

public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
    //TODO
    //FIXME 特别注意,该接口不能被扫描到,否则会出错
}

6、自动生成代码

上面的步骤配置完之后,运行GeneratorDisplay.java就可以生成mapper文件以及pojo

image

完成!

如果有时间的话,建议看一看下面的相关连接。!0z0!


相关连接

Spring Boot 集成 MyBatis, 分页插件 PageHelper, 通用 Mapper

慕课网mybatis自动生成

上一篇下一篇

猜你喜欢

热点阅读