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日

相关文章

  • 在Linux环境下mysql的root密码忘记解决方法(三种)

    下面就详细讲解一下在 Linux 环境下 mysql 的 root 密码忘记了之后应该如何解决,包括三种解决方法: 方法一:使用 mysql 安全模式重置 root 密码 首先,关闭 mysql 服务: sudo systemctl stop mysql 然后,在安全模式下启动 mysql 服务,并跳过权限验证: sudo mysqld_safe –ski…

    database 2023年5月22日
    00
  • 使用Jedis操作Redis-使用Java语言在客户端操作—对Sorted-Sets的操作

        1 //对Sorted-Sets操作 2 /** 3 * Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。 4 * 它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。 5 * 然而需要额外指出…

    Redis 2023年4月12日
    00
  • MySQL 子查询和分组查询

    MySQL 子查询和分组查询是 SQL 语言中非常重要的两个查询方式,本篇攻略将详细讲解这两种查询方法的使用和应用场景。 子查询 子查询也称为内查询,是指在一个 SQL 语句中嵌套了另一个 SELECT 语句,通常用来做为外查询的限定条件。 基本语法 子查询的基本语法如下: SELECT column FROM table WHERE column oper…

    database 2023年5月22日
    00
  • SQL Server2012附加数据库5120错误(拒绝访问)的解决方法

    SQL Server2012附加数据库5120错误(拒绝访问)的解决方法 在SQL Server 2012中附加数据库时,有时会遇到5120错误(拒绝访问)的问题,这种情况通常是由于SQL Server没有足够的权限来访问要附加的数据库文件所在的文件夹,或者是文件夹本身不允许SQL Server服务访问。 下面是解决这个问题的步骤: 步骤一:检查SQL Se…

    database 2023年5月21日
    00
  • SpringBoot实现动态控制定时任务支持多参数功能

    下面是“SpringBoot实现动态控制定时任务支持多参数功能”的完整攻略。 简介 SpringBoot是基于Spring框架的一种快速开发框架,可以轻松完成Web开发、任务调度等日常任务。我们常常需要使用定时任务来完成一些周期性的任务,而定时任务也需要支持多参数传递,以便动态控制任务的执行时间和任务参数。本文将介绍如何使用SpringBoot框架来实现动态…

    database 2023年5月21日
    00
  • python3学习之Splash的安装与实例教程

    Python3学习之Splash的安装与实例教程 Splash是什么? Splash是一个JavaScript渲染服务,通过它可以直接使用Python脚本来操作Splash提供的API来使用JavaScript渲染服务。该技术主要用于在爬虫中渲染JavaScript内容,从而获取更多的数据。 Splash的安装步骤 安装Docker:Splash依赖于Doc…

    database 2023年5月21日
    00
  • Oracle自动备份脚本

    下面是一个详细的Oracle自动备份脚本的攻略,包括以下几个部分: 前置要求 编写备份脚本 配置crontab定时执行备份任务 示例说明 1. 前置要求 在编写备份脚本之前,我们需要确保以下几点: 有一个管理员权限的Oracle用户 安装并配置好Oracle客户端工具,可以连接到需要备份的数据库实例 安装并配置好一个备份目录,用于存储备份文件。 2. 编写备…

    database 2023年5月22日
    00
  • MySQL学习(七):Innodb存储引擎索引的实现原理详解

    MySQL学习(七):Innodb存储引擎索引的实现原理详解 索引的概念 索引是一种数据结构,它可以帮助我们快速的定位特定数据。在数据库中,我们可以通过创建合适的索引来提高多种操作的效率,比如查询、排序、连接、聚合等。 Innodb存储引擎 Innodb是MySQL自带的一种存储引擎,它支持事务、行级锁等高级特性,因此被广泛应用在各种复杂应用场景中。 索引的…

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