首页 > 解决方案 > 如何为mybatis生成器插件生成的'Example'配置基类

问题描述

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

标签: javamybatis

解决方案


可以使用自定义插件

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

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>
        ...

推荐阅读