Mybatis Generator 自定義註釋(生成帶有中文字段名註釋的Bean)

利用工具:maven項目,nuxus私服。 Mybatis Generator基本使用教程傳送門html

想必在利用Mybatis Generator生成代碼以後,相比看着一堆雞肋的註釋不少人都和我同樣很糾結,明明數據庫中字段有註釋,爲何生成的Bean沒有呢?帶着發現問題,必定要解決問題的決心,我進行了探索。java

先mark幾篇Mybatis Generator的資料:
Mybatis Generator中文API
一篇很詳細的博客mysql

要想生成中文註釋,首先咱們須要新建一個maven項目sql

1A8815C2-E222-406F-A66D-4E982FB0876數據庫

而後新建一個類,名字隨便啦。。。我這裏叫QnloftCommentGenerator,上代碼api

package org.mybatis.generator;

import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.internal.DefaultCommentGenerator;

/**
 * User: R&M www.rmworking.com/blog
 * Date: 16/6/20
 * Time: 00:56
 * mybatis-generator-increase
 * org.mybatis.generator
 */
public class QnloftCommentGenerator extends DefaultCommentGenerator {

    @Override
    public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
        // 添加字段註釋
        StringBuffer sb = new StringBuffer();
        field.addJavaDocLine("/**");
        field.addJavaDocLine(" * <pre>");
        if (introspectedColumn.getRemarks() != null)
            field.addJavaDocLine(" * " + introspectedColumn.getRemarks());
        sb.append(" * 表字段 : ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        sb.append('.');
        sb.append(introspectedColumn.getActualColumnName());
        field.addJavaDocLine(sb.toString());
        field.addJavaDocLine(" * </pre>");
        field.addJavaDocLine(" * ");
        // addJavadocTag(field, false);
        field.addJavaDocLine(" */");
    }
}

主要就是繼承DefaultCommentGenerator,重寫addFieldComment方法。mybatis

在pom文件中加入app

<dependencies>
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
    </dependency>
</dependencies>

OK了,咱們執行 mvn -package打包上傳到nuxus便可。上傳nuxus的方法,請自行百度吧,或者給我留言!dom

而後在須要生成代碼的項目的pom.xml加入咱們以前上傳的這個jar便可maven

<build>
  <plugins>
      <!-- mybatis代碼生成插件 -->
      <plugin>
          <groupId>org.mybatis.generator</groupId>
          <artifactId>mybatis-generator-maven-plugin</artifactId>
          <version>1.3.2</version>
          <configuration>
              <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
              <verbose>true</verbose>
              <overwrite>true</overwrite>
          </configuration>
          <executions>
              <execution>
                  <id>Generate MyBatis Artifacts</id>
                  <goals>
                      <goal>generate</goal>
                  </goals>
              </execution>
          </executions>
          <dependencies>
                <!-- 這裏就是咱們本身定義的jar啦 -->
              <dependency>
                        <groupId>qnloft-mybatis-generator</groupId>
                        <artifactId>mybatis-generator-increase</artifactId>
                        <version>0.0.1</version>
                    </dependency>
              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <version>5.1.35</version>
              </dependency>
          </dependencies>
      </plugin>
  </plugins>
</build>

最後,修改generatorConfig.xml配置文件,在commentGenerator標籤中指向咱們自定義的註釋類。

<commentGenerator type="org.mybatis.generator.QnloftCommentGenerator">
    <!-- 定義是否生成原生註釋,咱們這裏自定義了,因此選擇false -->
    <property name="suppressAllComments" value="false"/>
    <!-- This property is used to specify whether MBG will include the generation timestamp in the generated comments -->
    <property name="suppressDate" value="true"/>
</commentGenerator>
相關文章
相關標籤/搜索