mybatis-generator如何自定义注释生成

自定义注释可以让生成的代码更加规范化和具有可读性,MyBatis Generator提供了多个配置选项来实现自定义注释。下面详细讲解如何自定义注释生成的完整攻略:

1. 在generatorConfig.xml配置文件中添加注释生成配置

在generatorConfig.xml文件中,可以通过添加count和commentGenerator两个节点来实现注释生成的配置。

<!-- 指定注释生成器 -->
<commentGenerator type="org.mybatis.generator.internal.DefaultCommentGenerator">
    <!-- 是否生成日期 -->
    <property name="suppressDate" value="true"/>

    <!-- 是否生成注释 -->
    <property name="suppressAllComments" value="false"/>

    <!-- 注释中是否生成数据库中列名 -->
    <property name="columnRemarks" value="true"/>
</commentGenerator>

在commentGenerator节点内部,type指定了注释生成器的全路径的类名,suppressDate标记控制是否在注释中生成日期,suppressAllComments标记控制是否生成所有注释,columnRemarks标记控制是否在注释中生成数据库中列名。

除了注释生成器之外,还可以通过添加count节点来指定是否生成表的行数,示例代码如下:

<table tableName="user">
    <generatedKey column="id" sqlStatement="MySql" identity="true"/>
    <columnOverride column="password" javaType="String" jdbcType="CHAR"/>
    <columnOverride column="delete_flag" javaType="Integer" jdbcType="TINYINT"/>
    <ignoreColumn column="create_time"/>
    <ignoreColumn column="update_time"/>

    <!-- 生成行数 -->
    <countColumn tableName="user" columnName="id" />
</table>

count节点中的tableName属性指定要生成行数的表名,columnName属性指定表中的哪个列用于计算行数。

2. 在DefaultCommentGenerator中自定义注释模板

MyBatis Generator默认使用DefaultCommentGenerator来生成注释,我们可以自定义注释模板来生成符合自己需求的注释信息。具体做法如下:

首先,需要继承DefaultCommentGenerator并重写以下方法:

public class CustomCommentGenerator extends DefaultCommentGenerator {
    @Override
    public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
        super.addFieldComment(field, introspectedTable, introspectedColumn);
    }

    @Override
    public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
        super.addGetterComment(method, introspectedTable, introspectedColumn);
    }

    @Override
    public void addSetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
        super.addSetterComment(method, introspectedTable, introspectedColumn);
    }
}

其次,需要在generatorConfig.xml文件中指定注释生成器为自定义生成器:

<commentGenerator type="com.example.CustomCommentGenerator">
    ...
</commentGenerator>

最后,可以在自定义注释生成方法中,使用introspectedTable和introspectedColumn两个对象获取表和列信息,并在注释中使用这些信息展示自己想要的信息。下面是一个例子:

public class CustomCommentGenerator extends DefaultCommentGenerator {
    @Override
    public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
        StringBuilder sb = new StringBuilder();
        field.addJavaDocLine("/**");
        sb.append(" * ").append(introspectedTable.getFullyQualifiedTable()).append(".").append(introspectedColumn.getActualColumnName());
        sb.append(": ").append(introspectedColumn.getRemarks());
        field.addJavaDocLine(sb.toString());
        field.addJavaDocLine(" */");
    }
}

在上面的例子中,我们通过introspectedTable和introspectedColumn对象,获取了表名,列名和列备注,然后将这些信息组装成注释添加到了字段上。可以看到,在自定义注释生成方法中,可以完全自由地组合想要展示的信息,实现注释的高度可读性和规范性。

综上所述,通过配置generatorConfig.xml文件,以及自定义注释生成器可以实现自定义注释生成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis-generator如何自定义注释生成 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 如何利用Oracle命令解决函数运行错误

    当使用Oracle数据库的时候,我们经常会遇到函数出现错误的情况。这时我们可以使用一些Oracle命令来排查问题并解决它们。下面是一些可以帮助我们解决函数运行错误的方法: 常用Oracle命令 1. SHOW ERROR SHOW ERROR命令可以显示上一次运行时出现的错误,例如: SQL> CREATE OR REPLACE FUNCTION cr…

    database 2023年5月21日
    00
  • Mysql 5.7 新特性之 json 类型的增删改查操作和用法

    Mysql 5.7 新特性之 json 类型的增删改查操作和用法 什么是json类型 JSON是JavaScript Object Notation的缩写,是一种用于数据交换的轻量级文本格式。MySQL 5.7支持JSON类型,可以在表的列中存储JSON格式的数据,这些数据可以在MySQL中进行查询和修改,支持JSON文档中的各种数据类型如字符串、数字、数组…

    database 2023年5月21日
    00
  • MySQL自动编号与主键

    1、自动编号(AUTO_INCREMENT),必须与主键组合使用 默认情况下,起始值为1,增量也为1。 2、主键(PRIMARY KEY) 每张数据表只能存在一个主键 主键保证记录的唯一性 主键自动为NOT NULL 3、AUTO_INCREMENT必须与主键一起使用,主键不一定必须与AUTO_INCREMENT一起使用。 mysql> CREATE …

    MySQL 2023年4月16日
    00
  • sqlserver 中时间为空的处理小结

    下面是详细讲解 SQL Server 中时间为空的处理小结的完整攻略。 标题 SQL Server 中时间为空的处理小结 问题描述 在 SQL Server 中,我们常常需要对时间类型的数据进行操作,但有时候这些数据可能是空值,而空值的处理需要特别注意。本文将为大家讲解在 SQL Server 中处理时间为空值的方法。 空值判断方法 在 SQL Server…

    database 2023年5月21日
    00
  • .NET程序性能监控系统Elastic AMP的使用方法

    .NET程序性能监控系统Elastic AMP的使用方法 1. Elastic AMP是什么? Elastic AMP(Application Performance Management)是一个开源的.NET程序性能监控解决方案,它适用于Web应用程序、Windows服务、消息服务等各种.NET应用程序。 通过Elastic AMP,您可以轻松地分析应用程…

    database 2023年5月21日
    00
  • SQL如何获取目标时间点或日期的方法实例

    当我们需要从一个存储了时间数据的数据表中获取指定时间点或日期的相关数据时,可以使用SQL语句中的时间函数和运算符来实现。 一、获取目标时间点的方法 1.使用NOW()函数来获取当前时间,然后结合运算符进行筛选,例如: SELECT * FROM table_name WHERE time_column = NOW(); 其中,table_name是需要查询的…

    database 2023年5月21日
    00
  • redhat7通过yum安装mysql5.7.17教程

    下面是redhat7通过yum安装mysql5.7.17的完整攻略: 一、安装MySQL源 在终端中执行以下命令: wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 下载完成后,执行以下命令安装MySQL源: sudo rpm -ivh mysql80-comm…

    database 2023年5月22日
    00
  • MySQL主从复制的原理及配置方法(比较详细)

    MySQL主从复制的原理及配置方法 1. 原理 MySQL主从复制是一种数据备份和数据读写分离的解决方案,能够实现多台MySQL服务器之间的数据同步。主从复制主要由一个主库和多个从库组成,主库将数据更新操作通过二进制日志(Binary Log)记录下来,从库通过读取主库的二进制日志实现数据的同步。 主从复制的原理大致如下: 首先需要在主库上启用二进制日志(B…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部