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自定义注释生成

  • 相关阅读:
    jquery左右滑动效果的实现
    解决IE6不支持position:fixed的bug
    简单的漂浮层
    CSS Image Sprite--网页图片应用处理方式
    浮动层-JS兼容IE6
    js搜索框输入提示(高效-ys8)
    fiddler抓包(移动端APP端)
    python系统介绍
    “多走的弯路”
    接口测试实例(jmeter)
  • 原文地址:https://www.cnblogs.com/zhian/p/15243796.html
Copyright © 2011-2022 走看看