使用DefaultCommentGenerator自定义Mybatis生成的model注释

面试的时候,问有没有用过DefaultCommentGenerator,绝大部分程序员都不知道。其实它是用来生成model自定义注释的,本文就将介绍它的用法。

项目中的model,mapper以及mapper.xml基本都是用Mybatis Generator(以下简称为MBG)自动生成的,但是MBG自动生成的model的注释实在有点非人类,至少中国人是完全接受不了的,在配置中禁用掉注释吧,倒是简单了,可是生成的model类光秃秃的,啥都没有,字段方法没有注释,使用很不方便,别人看也不知道这个字段是啥含义。那么有没有办法优化自动生成model的注释呢?

答案当然是有,那就是使用DefaultCommentGenerator来自定义注释内容的生成。

首先我们需要继承DefaultCommentGenerator类:

package com.xttblog.plugin;
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;
/**
 * 生成model中,字段增加注释
 */
public class CommentGenerator extends DefaultCommentGenerator {

	@Override
	public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
		super.addFieldComment(field, introspectedTable, introspectedColumn);
		if (introspectedColumn.getRemarks() != null && !introspectedColumn.getRemarks().equals("")) {
			field.addJavaDocLine("/**");
			field.addJavaDocLine(" * " + introspectedColumn.getRemarks());
			addJavadocTag(field, false);
			field.addJavaDocLine(" */");
		}
	}
}

然后再新建一个Xttblog类,运行Xttblog类就会直接生成model,mapper以及mapper.xml,类的代码如下:

package com.xttblog.test;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class Xttblog {
    public static void main(String[] args) throws URISyntaxException {
        try {
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            //直接获取generatorConfig.xml的文件路径 根据具体情况查看
            File configFile = new File("E://WorkPlace//xttblog//src//main//resources//generatorConfig.xml");
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = cp.parseConfiguration(configFile);
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
            myBatisGenerator.generate(null);
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (InvalidConfigurationException e) {
            e.printStackTrace();
        } catch (XMLParserException e) {
            e.printStackTrace();
        }
    }
}

最后再修改一下generatorConfig.xml中的注释配置:

<commentGenerator type="com.xttblog.plugin.CommentGenerator">
   <!-- <property name="suppressDate" value="true"/>
	是否去除自动生成的注释 true:是 : false:否
	<property name="suppressAllComments" value="false"/>-->
</commentGenerator>

commentGenerator 的type是你刚刚重写的DefaultCommentGenerator类的位置。

运行Xttblog,你会发现model,mapper以及mapper.xml都已经产生,实体类model中的注释非常的漂亮。

使用DefaultCommentGenerator自定义Mybatis生成的model注释

: » 使用DefaultCommentGenerator自定义Mybatis生成的model注释

原创文章,作者:Carrie001128,如若转载,请注明出处:https://blog.ytso.com/251692.html

(0)
上一篇 2022年5月3日
下一篇 2022年5月3日

相关推荐

发表回复

登录后才能评论