继承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:\program\myprogram\maven\repository\mysql\mysql-connector-java\5.1.30\mysql-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自定义注释生成

Mybatis-Generator 自定义注释的更多相关文章

  1. MyBatis Generator 自定义生成注释

    注释生成器 为了生成db里面的注释,必须自定义注释生成器 EmptyCommentGenerator: import org.mybatis.generator.api.CommentGenerato ...

  2. 记一次 IDEA mybatis.generator 自定义扩展插件

    在使用 idea mybatis.generator 生成的代码,遇到 生成的代码很多重复的地方, 虽然代码是生成的,我们也不应该允许重复的代码出现,因为这些代码后期都要来手动维护. 对于生成时间戳注 ...

  3. SpringBoot(十一):springboot2.0.2下配置mybatis generator环境,并自定义字段/getter/settetr注释

    Mybatis Generator是供开发者在mybatis开发时,快速构建mapper xml,mapper类,model类的一个插件工具.它相对来说对开发者是有很大的帮助的,但是它也有不足之处,比 ...

  4. mybatis generator为实体类生成自定义注释(读取数据库字段的注释添加到实体类,不修改源码)

    我们都知道mybatis generator自动生成的注释没什么实际作用,而且还增加了代码量.如果能将注释从数据库中捞取到,不仅能很大程度上增加代码的可读性,而且减少了后期手动加注释的工作量. 1.首 ...

  5. 关于 mybatis-generator自定义注释生成 使用DefaultCommentGenerator重写来完成

    项目里新建表时model,mapper以及mapper.xml基本都是用Mybatis Generator(以下简称为MBG)自动生成的,但是MBG自动生成的model的注释实在有点非人类,至少中国人 ...

  6. mybatis-generator自定义注释生成

    最近做的项目发现没有中文注释,故查找资料,特此记录. 本文所用的是基于mybatis-generator 1.3.2版本来完成的. mybatis-generator 自动生成的代码注释是很反人类的, ...

  7. MyBatis Generator 超详细配置

    想快速开始,请直接拉到最后,看整体配置. MyBatis Generator 是 MyBatis 提供的一个代码生成工具.可以帮我们生成 表对应的持久化对象(po).操作数据库的接口(dao).CRU ...

  8. MyBatis Generator 生成数据库自带中文注释

    1. maven依赖 <!-- mybatis生成 jar包 --> <dependency> <groupId>org.mybatis.generator< ...

  9. Mybatis Generator生成数据库自带的中文注释

    1.相关jar包 <!-- mybatis生成 jar包 --> <dependency> <groupId>org.mybatis.generator</g ...

随机推荐

  1. Spring 源码(7)Spring的注解是如何解析的?

    上一篇 https://www.cnblogs.com/redwinter/p/16196359.html 介绍了BeanFactoryPostProcessor的执行过程,这篇文章介绍Spring中 ...

  2. 【图解】面试题:ConcurrentHashMap是如何保证线程安全的

    注意:JDK1.7与JDK1.8中的ConcurrentHashMap主要延续HashMap的设计与思想,是在其基础上进行的相应优化 1.JDK1.7中的底层实现原理 (1)JDK1.7Concurr ...

  3. vue 时间过滤器

    过滤器:定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理).语法:1.注册过滤器: Vue.filter(name ,callback)或new Vue{filters:{}}2. ...

  4. PHP代码审计之SQL注入

    代码审计之SQL注入 SQL注入攻击(SQLInjection),是攻击者在表单中提交精心构造的sql语句,改变原来的sql语句,如果web程序没有对提交的数据经过检查,那么就会造成sql注入攻击. ...

  5. deepin安装jdk配置环境

    下载一个jdk压缩包https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz 这个包,不用安装,下下来,直接解压,然 ...

  6. Web 后端的一生之敌:分页器

    分页器是 Web 开发中常见的功能,看似简单的却经常隐藏着各种奇怪的坑,堪称 WEB 后端开发的一生之敌. 常见问题 边翻页边写入导致内容重复 某位用户正在浏览我的博客,他看到第一页最后一篇文章是 & ...

  7. 12┃音视频直播系统之 WebRTC 实现1对1直播系统实战

    一.搭建 Web 服务器 前面我们已经实现过,但是没有详细说HTTPS服务 首先需要引入了 express 库,它的功能非常强大,用它来实现 Web 服务器非常方便 同时还需要引入 HTTPS 服务, ...

  8. 面试突击51:为什么单例一定要加 volatile?

    单例模式的实现方法有很多种,如饿汉模式.懒汉模式.静态内部类和枚举等,当面试官问到"为什么单例模式一定要加 volatile?"时,那么他指的是为什么懒汉模式中的私有变量要加 vo ...

  9. Spring Ioc源码分析系列--Bean实例化过程(二)

    Spring Ioc源码分析系列--Bean实例化过程(二) 前言 上篇文章Spring Ioc源码分析系列--Bean实例化过程(一)简单分析了getBean()方法,还记得分析了什么吗?不记得了才 ...

  10. CSS3:scrollbar样式设置

    CSS3:scrollbar样式设置 1. 设置出现滚动条的方式 overflow:scroll --- x和y方向都会出现滚动条 或者 overflow-x:scroll --- 只有x方向出现滚动 ...