首页 » 技术分享 » 代码生成器_1.3.7产生带字段描述的实体类

代码生成器_1.3.7产生带字段描述的实体类

 

一共记录2种有效方法,进行记录

第一种: 自定义代码生成器

public class MyCommentGenerator extends DefaultCommentGenerator {
// 默认开启注解
private boolean suppressAllComments = true;
//此时需要处理 get /set方法注解 以及mapper文件注解 通过重写相应的方法只保存
//字段描述信息,取消get/set mapper的注解信息

/**
 * @author : ShiLei
 * @time :2017年12月25日 下午5:42:34
 * @introduction : 通过继承DefaultCommentGenerator类 设置实体类对应数据库字段的中文注释
 */
// 设置实体类 属性注释
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {

    if (suppressAllComments) {
        if (StringUtility.stringHasValue(introspectedColumn.getRemarks())) {
        //自定义描述形式
            field.addJavaDocLine("//" + introspectedColumn.getRemarks() + "  " + introspectedColumn.getActualColumnName());
        }
    } else {
        super.addFieldComment(field, introspectedTable, introspectedColumn);
    }
}

// 设置实体类 getter注释
@Override
public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
    if (suppressAllComments) {
        if (StringUtility.stringHasValue(introspectedColumn.getRemarks())) {
            method.addJavaDocLine("//获取:" + introspectedColumn.getRemarks());
        }
    } else {
        super.addGetterComment(method, introspectedTable, introspectedColumn);
    }
}

// 设置实体类 setter注释
@Override
public void addSetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
    if (suppressAllComments) {
        if (StringUtility.stringHasValue(introspectedColumn.getRemarks())) {
            method.addJavaDocLine("//设置:" + introspectedColumn.getRemarks());
        }
    } else {
        super.addSetterComment(method, introspectedTable, introspectedColumn);
    }
}

// 去掉mapper原始注释
@Override
public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) {
    if (suppressAllComments) {
        return;
    } else {
        super.addGeneralMethodComment(method, introspectedTable);
    }
}

// 去掉mapping原始注释
@Override
public void addComment(XmlElement xmlElement) {
    if (suppressAllComments) {
        return;
    } else {
        super.addComment(xmlElement);
    }
}

}

generatorConfig.xml 配置加载方式,只需要一行

运行结果展示
在这里插入图片描述

方法二 : 通过初始化构造出字段描述属性

在mybatis-generator-core-1.3.7的源码找到
generator\mybatis-generator-core\1.3.7\generator\api\dom\java\Field.class
进行修改,
新增一个字段 private String remarks;
提供set/get方法
在 getFormattedContent方法最后面进行拼接

 if(remarks!=null&& remarks.length()>0){
            sb.append("//").append(remarks);
        }
    实际就是
    **private String  demo ; // 字段信息** 

在generator\mybatis-generator-core\1.3.7\generator\internal\util\JavaBeansUtil.class
的 getJavaBeansField方法中添加一列
field.setRemarks("(" + introspectedColumn.getActualColumnName() + “)” + introspectedColumn.getRemarks());
填充remarks字段信息
generatorConfig.xml 配置加载方式,

   <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
   <commentGenerator>
              <property name="suppressAllComments" value="true"/>
 </commentGenerator>

运行结果展示
在这里插入图片描述
通过在线文档进行记录

转载自原文链接, 如需删除请联系管理员。

原文链接:代码生成器_1.3.7产生带字段描述的实体类,转载请注明来源!

0