zoukankan      html  css  js  c++  java
  • Mybatis-Generator 自定义注释

    继承DefaultCommentGenerator 或者CommentGenerator 

    
    
    package com.zhianchen.mysqlremark.toword.config;

    import org.apache.commons.lang3.StringUtils;
    import org.mybatis.generator.api.CommentGenerator;
    import org.mybatis.generator.api.IntrospectedColumn;
    import org.mybatis.generator.api.IntrospectedTable;
    import org.mybatis.generator.api.dom.java.*;
    import org.mybatis.generator.api.dom.xml.XmlElement;
    import org.mybatis.generator.config.PropertyRegistry;

    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Properties;

    /*
    *
    *@Description MybatisGenerator
    *@Author chenzhian
    *@Date 2021/11/11 16:36
    */
    public class MybatisGenerator implements CommentGenerator {
    private Properties properties;
    private Properties systemPro;
    //时间
    private String currentDateStr;

    private Boolean suppressDate;
    //时间
    private Boolean suppressAllComments;

    private String author;

    public MybatisGenerator(){
    properties=new Properties();
    systemPro=System.getProperties();
    currentDateStr=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

    }
    public void addConfigurationProperties(Properties properties) {
    this.properties.putAll(properties);
    String strsuppressDate= properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE);
    suppressDate="true".equals(strsuppressDate);
    String strsuppressAllComments= properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_ALL_COMMENTS);
    suppressAllComments="true".equals(strsuppressAllComments);
    author=properties.getProperty("author");
    }

    /**
    * 字段注释的方法
    */
    public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
    // 添加字段注释
    field.addJavaDocLine("/**");
    field.addJavaDocLine("* "+introspectedColumn.getActualColumnName());
    field.addJavaDocLine("* "+introspectedColumn.getRemarks());
    field.addJavaDocLine(" */");
    }

    public void addFieldComment(Field field, IntrospectedTable introspectedTable) {
    // 添加字段注释
    field.addJavaDocLine("/**");
    field.addJavaDocLine("* "+field.getName());
    field.addJavaDocLine(" */");
    }

    public void addModelClassComment(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
    if(suppressAllComments){
    return;
    }
    // 添加字段注释
    topLevelClass.addJavaDocLine("/**");
    topLevelClass.addJavaDocLine(" * ");
    topLevelClass.addJavaDocLine(""+introspectedTable.getFullyQualifiedTable());
    topLevelClass.addJavaDocLine(" * @description : " + introspectedTable.getRemarks());
    topLevelClass.addJavaDocLine(" * @author : " + author);
    topLevelClass.addJavaDocLine(" * @date : " + currentDateStr);
    topLevelClass.addJavaDocLine(" * @modify : " );
    topLevelClass.addJavaDocLine(" */");
    }

    public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) {
    if(suppressAllComments){
    return;
    }
    // 添加字段注释
    innerClass.addJavaDocLine("/**");
    innerClass.addJavaDocLine(" * ");
    innerClass.addJavaDocLine(""+introspectedTable.getFullyQualifiedTable());
    innerClass.addJavaDocLine(" * @description : " + introspectedTable.getRemarks());
    innerClass.addJavaDocLine(" * @author : " + author);
    innerClass.addJavaDocLine(" * @date : " + currentDateStr);
    innerClass.addJavaDocLine(" * @modify : " );
    innerClass.addJavaDocLine(" */");
    }

    public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean b) {
    if(suppressAllComments){
    return;
    }
    // 添加字段注释
    innerClass.addJavaDocLine("/**");
    innerClass.addJavaDocLine(" * ");
    innerClass.addJavaDocLine(""+introspectedTable.getFullyQualifiedTable());
    innerClass.addJavaDocLine(" * @description : " + introspectedTable.getRemarks());
    innerClass.addJavaDocLine(" * @author : " + author);
    innerClass.addJavaDocLine(" * @date : " + currentDateStr);
    innerClass.addJavaDocLine(" * @modify : " );
    innerClass.addJavaDocLine(" */");
    }

    public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) {
    if(suppressAllComments){
    return;
    }
    // 添加字段注释
    innerEnum.addJavaDocLine("/**");
    innerEnum.addJavaDocLine(" * ");
    innerEnum.addJavaDocLine(""+introspectedTable.getFullyQualifiedTable());
    innerEnum.addJavaDocLine(" * @description : " + introspectedTable.getRemarks());
    innerEnum.addJavaDocLine(" * @author : " + author);
    innerEnum.addJavaDocLine(" * @date : " + currentDateStr);
    innerEnum.addJavaDocLine(" * @modify : " );
    innerEnum.addJavaDocLine(" */");
    }

    public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
    method.addJavaDocLine("/**");
    method.addJavaDocLine("* "+introspectedTable.getRemarks());
    method.addJavaDocLine("* @return "+method.getName());

    method.addJavaDocLine(" */");
    }

    public void addSetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
    method.addJavaDocLine("/**");
    method.addJavaDocLine("* "+introspectedTable.getRemarks());
    Parameter parameter=method.getParameters().get(0);
    method.addJavaDocLine("* @param "+parameter.getName());

    method.addJavaDocLine(" */");
    }

    public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) {
    if(suppressAllComments){
    return;
    }
    // 添加字段注释
    method.addJavaDocLine("/**");
    method.addJavaDocLine(" * ");
    //method.addJavaDocLine(""+method.getName());
    method.addJavaDocLine(" * @description : " + introspectedTable.getRemarks());
    method.addJavaDocLine(" * @author : " + author);
    method.addJavaDocLine(" * @date : " + currentDateStr);
    method.addJavaDocLine(" * @modify : " );
    method.addJavaDocLine(" */");
    }

    public void addJavaFileComment(CompilationUnit compilationUnit) {
    if(suppressAllComments){
    return;
    }

    }

    public void addComment(XmlElement xmlElement) {

    }

    public void addRootComment(XmlElement xmlElement) {

    }
    }
    
    

    ,就是introspectedColumn.getRemarks()获取不到字段的注释,生成的javabean里面应该显示字段注释的地方显示的是null.

    或者 introspectedTable.getRemarks() 获取不到表的注释,记得加上以下

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfiguration
    PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
    "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    <generatorConfiguration>
    <classPathEntry location="J:programmyprogrammaven epositorymysqlmysql-connector-java5.1.30mysql-connector-java-5.1.30.jar"/>
    <context id="DB2Tables" targetRuntime="MyBatis3">
    <!-- 生成mysql带有分页的sql的插件 这个可以自己写,-->
    <!-- <plugin type="generator.MysqlPaginationPlugin" />-->
    <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
    <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
    <!-- <property name="javaFileEncoding" value="UTF-8"/>-->

    <!-- 自定义的注释规则,继承 DefaultCommentGenerator 重写 一些方法 -->
    <commentGenerator type="com.zhianchen.mysqlremark.toword.config.MybatisGenerator">
    <!-- 是否去除自动生成日期的注释 true:是 : false:否 -->
    <property name="suppressDate" value="true"/>
    <!-- 是否去除所有自动生成的注释 true:是 : false:否 -->
    <property name="suppressAllComments" value="false"/>
    <property name="author" value="zhianchen"/>
    </commentGenerator>
    <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/information_schema"
    userId="aaa"
    password="aaaa">
    <!-- 针对oracle数据库 -->
    <!--<property name="remarksReporting" value="true"></property>-->
    <!-- 针对mysql数据库 -->
    <property name="useInformationSchema" value="true"></property>
    </jdbcConnection>
    <!--生成entity类存放位置-->
    <javaModelGenerator targetPackage="com.zhianchen.mysqlremark.toword.entity" targetProject="src/main/java">
    <property name="enableSubPackages" value="true"/>
    <property name="trimStrings" value="true"/>
    </javaModelGenerator>
    <!--生成映射文件存放位置-->
    <sqlMapGenerator targetPackage="mapping.master" targetProject="src/main/resources">
    <property name="enableSubPackages" value="true"/>
    </sqlMapGenerator>
    <!--生成Dao类存放位置-->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.zhianchen.mysqlremark.toword.dao"
    targetProject="src/main/java">
    <property name="enableSubPackages" value="true"/>
    </javaClientGenerator>
    <!-- <table tableName="TABLES" domainObjectName="Tables" />
    <table tableName="COLUMNS" domainObjectName="Columns"/>-->
    <table tableName="STATISTICS" domainObjectName="Statistics"/>

    </context>
    </generatorConfiguration>

    来源

    mysql generator备注_MyBatis Generator 自定义生成注释的方法

    Mybatis Generator 自定义注释(生成带有中文字段名注释的Bean)

    mybatis-generator自定义注释生成

  • 相关阅读:
    HDU2027 统计元音 一点点哈希思想
    湖南工业大学第一届ACM竞赛 数字游戏 字符串处理
    湖南工业大学第一届ACM竞赛 我素故我在 DFS
    HDU3293sort
    HDU2082 找单词 母函数
    HDU1018 Big Number 斯特林公式
    湖南工业大学第一届ACM竞赛 分糖果 位操作
    UVA 357 Let Me Count The Ways
    UVA 147 Dollars
    UVA 348 Optimal Array Multiplication Sequence
  • 原文地址:https://www.cnblogs.com/zhian/p/15243796.html
Copyright © 2011-2022 走看看