MyBatis Generator 插件使用教程
1. 项目的目录结构及介绍
MyBatis Generator 插件的目录结构如下:
mybatis-generator-plugin/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── itfsw/
│ │ │ └── mybatis/
│ │ │ └── generator/
│ │ │ └── plugins/
│ │ │ ├── ExampleTargetPlugin.java
│ │ │ └── ...
│ │ └── resources/
│ │ └── mybatis-generator-config.xml
├── README.md
├── LICENSE
└── pom.xml
目录结构介绍
src/main/java/
:包含插件的主要源代码。com/itfsw/mybatis/generator/plugins/
:插件的具体实现类。
src/main/resources/
:包含配置文件。mybatis-generator-config.xml
:MyBatis Generator 的配置文件。
README.md
:项目说明文档。LICENSE
:项目许可证。pom.xml
:Maven 项目配置文件。
2. 项目的启动文件介绍
MyBatis Generator 插件的启动文件主要是 ExampleTargetPlugin.java
,位于 src/main/java/com/itfsw/mybatis/generator/plugins/
目录下。
ExampleTargetPlugin.java
该文件是插件的核心实现类,主要功能是将 Example 类独立到一个新包下,方便查看和管理。
package com.itfsw.mybatis.generator.plugins;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
import org.mybatis.generator.api.dom.java.TopLevelClass;
import java.util.List;
public class ExampleTargetPlugin extends PluginAdapter {
@Override
public boolean validate(List<String> warnings) {
return true;
}
@Override
public boolean modelExampleClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
String targetPackage = properties.getProperty("targetPackage");
if (targetPackage != null && targetPackage.length() > 0) {
topLevelClass.setPackageName(targetPackage);
}
return true;
}
}
3. 项目的配置文件介绍
MyBatis Generator 插件的配置文件是 mybatis-generator-config.xml
,位于 src/main/resources/
目录下。
mybatis-generator-config.xml
该文件包含了 MyBatis Generator 的基本配置和插件配置。
<?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" targetRuntime="MyBatis3">
<plugin type="com.itfsw.mybatis.generator.plugins.ExampleTargetPlugin">
<property name="targetPackage" value="com.example.mybatis.example"/>
</plugin>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mydb"
userId="root"
password="root">
</jdbcConnection>
<javaModelGenerator targetPackage="com.example.mybatis.model" targetProject="src/main/java"/>
<sqlMapGenerator targetPackage="com.example.mybatis.mapper" targetProject="src/main/resources"/>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mybatis.mapper" targetProject="src/main/java"/>
<table tableName="user" domainObjectName="User"/>
</context>
</generatorConfiguration