文章目录
1 MyBatis Generator简介
MyBatis Generator (MBG) 是MyBatis的代码生成器,其内部关联一张或者多张数据库表,生成可访问表的模块。减轻了开发初期数据库表映射对象生成与配置的工作。
MyBatis Generator可以生成:
- 生成与表结构匹配的Java POJO。
- MyBatis兼容的SQL Map XML文件,并配置简单的CRUD生成SQL。
- 可选的Java客户端类,例如符合Spring框架的DAO。
[INFO] Saving file UserDO.java
[INFO] Saving file UserDOMapper.java
[INFO] Saving file UserDOMapper.xml
迭代运行MBG时,需要注意的是:
- MBG会自动合并同名的XML文件,但是不会覆盖开发人员对XML的自定义修改。
- MBG不会合并Java文件,而是选择覆盖现有文件(此处是要特别注意的点,容易导致代码丢失)。
2 运行MyBatis Generator
2.1 MBG运行方式
运行MBG有多种方式,例如通过命令行、Ant、Maven等。本文主要介绍Maven相关配置。
MBG包含一个Maven插件,可以集成到Maven构建中。
<project ...>
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
</plugin>
</plugins>
</build>
</project>
当然,事情并非如此简单。
2.2 Maven目标与执行
MBG Maven插件包含一个目标:mybatis-generator:generate,这个目标不是由Maven自动执行,可以通过以下两种方式。
方式1:通过命令行执行目标。
mvn mybatis-generator:generate
方式2:使用标准Maven命令行属性将参数传递给目标。使用该命令,将会运行MBG,覆盖已有的Java文件。
mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate
如果存在连续的环境构建,你可能想要MBG作为Maven构建的一部分自动执行。我们可以将目标配置为自动执行来实现。例如,
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
如上配置,MBG插件绑定到Maven构建的generate-sources阶段,因此它将在编译步骤之前执行。还要注意,MBG会生成Java源文件和XML资源,并将两者放入到构建生成的JAR包中。
2.3 MBG插件添加依赖
当前插件类路径仅包含了MBG自身,如果想要为MBG插件添加JDBC驱动,可以增加dependencies标签。
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>