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日

相关文章

  • Mysql或者SQL Server数据库的运行机制和体系架构

    一、MySQL主要分为以下几个组件: 连接池组件 管理服务和工具组件 SQL接口组件 分析器组件 优化器组件 缓冲组件 插件式存储引擎 物理文件 二、MySql的组成:Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的。 三、MySql体系结构: 1 Connectors指的是不同语言中与SQL的交互   2 Management Serveic…

    MySQL 2023年4月16日
    00
  • Mysql计算n日留存率的实现

    要计算Mysql中某个应用的n日留存率,主要需要以下几步: 1. 创建用户访问日志表 首先需要在Mysql中创建一个用户访问日志表,用来记录用户在应用中的各种行为,如登录、操作等。可以使用以下命令创建该表: CREATE TABLE `user_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` in…

    database 2023年5月22日
    00
  • 计算机二级考试MySQL知识点 常用MYSQL命令

    MYSQL知识点概述 MySQL是一个开源的关系型数据库管理系统,在计算机二级考试中,也是常见的考点之一。掌握MYSQL的相关知识,可以帮助我们更好地理解数据库的操作和应用,从而提高数据库的设计效率。下面主要介绍MYSQL考试中比较重要的几个方面,如常用MYSQL命令,此外还包括 MYSQL的基本操作,MYSQL的基本语法。 常用MYSQL命令 (1)MYS…

    database 2023年5月19日
    00
  • sql中的if和else使用及说明

    下面是关于SQL中if和else使用及说明的完整攻略。 什么是IF/ELSE语句? IF/ELSE语句是SQL中的条件控制流语句,可以用来在执行查询时基于特定的条件执行不同的语句块。 基于条件,这些语句块可以是:- 执行另一个SELECT语句或子查询- 返回单个值或一组结果- 更新或删除表中的数据 IF/ELSE使用的基本格式 语法: IF conditio…

    database 2023年5月21日
    00
  • 深入理解mysql帮助命令(help)

    当我们使用MySQL客户端时,我们通常会遇到一些不熟悉的命令或者语法,此时,我们可以通过MySQL提供的帮助命令(help)来获取相关信息。下面我将会详细讲解如何深入理解MySQL帮助命令。 1. 语法 MySQL帮助命令的基本语法如下: help [command] 其中,command为要查询的命令名称,如果不指定command,则会显示所有命令的帮助信…

    database 2023年5月22日
    00
  • 必须会的SQL语句(二) 创建表、修改表结构、删除表

    创建表 在使用SQL语句创建表时,需要以下关键字: CREATE TABLE:告诉SQL语句接下来要创建一个新的表; 表的名称:在关键字后面跟随着表的名称; 列名及数据类型:列是表中的基本组件,每个列都必须包含一个数据类型。 以下是一个简单的CREATE TABLE语句示例: CREATE TABLE student_information ( ID INT…

    database 2023年5月21日
    00
  • redis数据库写入数据时提示redis.exceptions.ResponseError错误

    今天运行Django项目在redis数据库写入数据时提示如下错误: ERROR log 228 Internal Server Error: /image_code/cf9ccd75-d274-45c0-94a4-a83c8c189965/ Traceback (most recent call last): File “/home/sky/.virtual…

    Redis 2023年4月13日
    00
  • Linux系统下多版本php共存的解决方案(超简单)

    下面是“Linux系统下多版本php共存的解决方案(超简单)”的完整攻略。 1. 确认系统环境 在开始之前,我们需要确认一下我们的系统环境,可以通过以下命令查看: $ lsb_release -a # 查看系统版本 $ uname -a # 查看系统内核版本 2. 安装Apache 我们可以使用以下命令安装Apache: $ sudo apt-get ins…

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