作者:王建乐
1 前言
在日常开发工作中,我们经常用Mybatis Generator根据表结构生成对应的实体类和Mapper文件。但是Mybatis Generator默认生成的代码中,注释并不是我们想要的,所以一般在Generator配置文件中,会设置不自动生成注释。带来的问题就是自动生成代码之后,我们还要自己去类文件中把注释加上,如果生成的类较少还好,如果有生成很多类文件,自己加注释是一件繁琐的工作。
通过重写Mybatis Generator的CommentGenerator接口,可以方便地生成自己想要的注释,减少重复工作。
2 使用Java方式执行Mybatis Generator
2.1 IDEA中新建Maven项目
pom.xml中引入jar包
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>MyGenerator</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency> </dependencies> </project>
2.2 创建generatorConfig.xml
随便找个目录放,我放在src/main/resources目录下
<?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="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" > <!-- 生成的 Java 文件的编码 --> <property name="javaFileEncoding" value="UTF-8"/> <!-- 格式化 Java 代码 --> <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/> <!-- 格式化 XML 代码 --> <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/> <commentGenerator> <property name="suppressAllComments" value="false" /> </commentGenerator> <!-- 配置数据库连接 --> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="URL" userId="user" password="password"> <!-- 设置 useInformationSchema 属性为 true --> <property name="useInformationSchema" value="true" /> </jdbcConnection> <!-- 生成实体的位置 --> <javaModelGenerator targetPackage="com.jd.bulk" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaModelGenerator> <!-- 生成 Mapper XML 的位置 --> <sqlMapGenerator targetPackage="com.jd.bulk" targetProje