给mybatis-generator插件自定义功能
1. 创建maven项目
由于使用的是maven的mybatis-generator插件, 所以要给它自定义功能的话也需要创建为maven项目, 其实本质上是让mybatis-generator插件去依赖我们写好的maven项目并打包为jar文件的包,在mybatis的官网中也有一些已经实现好的插件供开发者使用, 并作为参考创建自己的一些插件。创建maven项目就不再详述,在main/java文件夹下创建自己的包并创建一个java类让其继承PluginAdapter, 在此之前需要在pom文件中依赖mabatis-core包
package com.chrm.mybatis.generator.plugins;
import java.util.List;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.IntrospectedTable.TargetRuntime;
import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
import org.mybatis.generator.api.dom.java.Interface;
public class RepositoryPlugin extends PluginAdapter {
@Override
public boolean validate(List<String> warnings) {
return true;
}
@Override
public boolean clientGenerated(Interface interfaze, IntrospectedTable introspectedTable) {
if (introspectedTable.getTargetRuntime() == TargetRuntime.MYBATIS3) {
// don't need to do this for MYBATIS3_DSQL as that runtime already adds this annotation
interfaze.addImportedType(
new FullyQualifiedJavaType("org.springframework.stereotype.Repository")); //$NON-NLS-1$
interfaze.addAnnotation("@Repository"); //$NON-NLS-1$
}
return true;
}
}
这个类是参考mybatis-core下的插件库中的一种, 它的作用是在生成的xxdao,java文件添加一个@Repository注解并import其依赖的包, 这样可以方便开发的时候不必去生成的xxdao.java文件一个个添加注解。
2. Install项目
清理target文件夹之后可以开始打包, 使用集成的install命令, 一般ide的maven插件都会集成一个完整的maven命令, 直接使用即可, 如图:
3. 添加依赖
等待install命令执行结束, 就可以在mybatis-generator插件中引用jar包了
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
</configuration>
<dependencies>
<dependency>
<groupId>com.chrm</groupId>
<artifactId>mybatis-generator-lombok-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
</dependencies>
</plugin>
然后需要在配置文件中让mybatis-generator引用jar包
<generatorConfiguration>
<context id="mysqlTables" targetRuntime="MyBatis3">
<!-- 分页相关 -->
<plugin type="org.mybatis.generator.plugins.RowBoundsPlugin" />
<!-- 带上序列化接口 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<plugin type="com.chrm.mybatis.generator.plugins.LombokPlugin" >
<property name="hasLombok" value="true"/>
</plugin>
<plugin type="com.chrm.mybatis.generator.plugins.RepositoryPlugin" />
...
</context>
</generatorConfiguration>