Mybatis代码生成器Mybatis-Generator使用详解

最近在做创业项目的时候因为有比较多的新需求 , 需要频繁基于DDL生成Mybatis适合的实体、MApper接口和映射文件 。其中 , 代码生成器是MyBatis Generator(MBG) , 用到了Mybatis-Generator-Core相关依赖 , 这里通过一篇文章详细地分析这个代码生成器的使用方式 。本文编写的时候使用的Mybatis-Generator版本为1.4.0 , 其他版本没有进行过调研 。
引入插件Mybatis-Generator的运行方式有很多种:

  • 基于mybatis-generator-core-x.x.x.jar和其XML配置文件 , 通过命令行运行 。
  • 通过Ant的Task结合其XML配置文件运行 。
  • 通过Maven插件运行 。
  • 通过JAVA代码和其XML配置文件运行 。
  • 通过Java代码和编程式配置运行 。
  • 通过Eclipse Feature运行 。
这里只介绍通过Maven插件运行和通过Java代码和其XML配置文件运行这两种方式 , 两种方式有个特点:都要提前编写好XML配置文件 。个人感觉XML配置文件相对直观 , 后文会花大量篇幅去说明XML配置文件中的配置项及其作用 。这里先注意一点:默认的配置文件为
ClassPath:generatorConfig.xml 。
通过编码和配置文件运行通过编码方式去运行插件先需要引入mybatis-generator-core依赖 , 编写本文的时候最新的版本为:
<dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.4.0</version></dependency>假设编写好的XML配置文件是ClassPath下的
generator-configuration.xml , 那么使用代码生成器的编码方式大致如下:
List<String> warnings = new ArrayList<>();// 如果已经存在生成过的文件是否进行覆盖boolean overwrite = true;File configFile = new File("ClassPath路径/generator-configuration.xml");ConfigurationParser cp = new ConfigurationParser(warnings);Configuration config = cp.parseConfiguration(configFile);DefaultShellCallback callback = new DefaultShellCallback(overwrite);MyBatisGenerator generator = new MyBatisGenerator(config, callback, warnings);generator.generate(null);通过Maven插件运行如果使用Maven插件 , 那么不需要引入mybatis-generator-core依赖 , 只需要引入一个Maven的插件
mybatis-generator-maven-plugin:
<plugins><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.4.0</version><executions><execution><id>Generate MyBatis Artifacts</id><goals><goal>generate</goal></goals></execution></executions><configuration><!-- 输出详细信息 --><verbose>true</verbose><!-- 覆盖生成文件 --><overwrite>true</overwrite><!-- 定义配置文件 --><configurationFile>${basedir}/src/main/resources/generator-configuration.xml</configurationFile></configuration></plugin></plugins>
mybatis-generator-maven-plugin的更详细配置和可选参数可以参考:Running With Maven 。插件配置完毕之后 , 使用下面的命令即可运行:
mvn mybatis-generator:generateXML配置文件详解XML配置文件才是Mybatis-Generator的核心 , 它用于控制代码生成的所有行为 。所有非标签独有的公共配置的Key可以在mybatis-generator-core的PropertyRegistry类中找到 。下面是一个相对完整的配置文件的模板:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><properties resource="db.properties"/><classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" /><context id="DB2Tables" targetRuntime="MyBatis3"><jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver"connectionURL="jdbc:db2:TEST"userId="db2admin"password="db2admin"></jdbcConnection><plugin type="org.mybatis.generator.plugins.SerializablePlugin"/><commentGenerator><property name="suppressDate" value=https://www.isolves.com/it/cxkf/kj/2021-08-12/"true"/>


推荐阅读