如何为mybatis生成器插件生成的“示例”配置基类

时间:2019-04-09 03:29:14

标签: java mybatis

如何为mybatis生成器插件生成的“示例”配置基类,或者生成器插件可以为“示例”配置基类?

1 个答案:

答案 0 :(得分:0)

使用自定义plugin可以实现。

如果只需要扩展基类,那很容易。

package mygroup.myplugin;

import java.util.List;

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;

public class ExampleSuperclassPlugin extends PluginAdapter {
  @Override
  public boolean validate(List<String> warnings) {
    return true;
  }

  @Override
  public boolean modelExampleClassGenerated(
      TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
    // Add import
    topLevelClass.addImportedType(new FullyQualifiedJavaType("your.pkg.ExampleBase"));
    // Add 'extends ExampleBase'
    topLevelClass.setSuperClass("ExampleBase");
    return true;
  }
}

generatorConfig.xml中,添加<plugin />条目。

<generatorConfiguration>
  ...
  <context ...>
    <plugin type="mygroup.myplugin.ExampleSuperclassPlugin" />
    ...

在运行Generator时,请确保自定义插件JAR包含在类路径中。 例如,如果您使用Generator Maven插件,请将其作为依赖项添加到pom.xml中的插件中。

<build>
  ...
  <plugins>
    <plugin>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-maven-plugin</artifactId>
      <version>1.3.7</version>
      <dependencies>
        <dependency>
          <groupId>mygroup</groupId>
          <artifactId>myplugin</artifactId>
          <version>0.0.1</version>
        </dependency>
        ...