使用MybatisPlus自定义模版中能获取到的信息

MybatisPlus(简称MP)是一个基于Mybatis的增强工具库,可以大大简化Mybatis开发,提高开发效率。MP支持使用自定义模版来生成代码,通过自定义模版可以快速生成符合公司业务规范的代码,而且MP在模版中提供了很多变量,方便我们在模版中使用。

下面详细讲解在MP自定义模板中能够获取到的信息及使用方法:

1. 可以获取表的元数据信息

在自定义模版中可以通过${table}变量来获取表的元数据信息,包括表名、表注释、表的主键列信息、表的所有列信息。该变量是一个TableInfo类型的对象,该类型定义如下:

/**
 * 表信息
 * Created by liuzh on 2016/12/30.
 */
public class TableInfo {
    private String name; // 表名
    private String comment; // 表注释
    private String primaryKeyType; // 主键类型
    private String primaryKeyColumn; // 主键列名
    private boolean autoIncrement; // 是否自增列
    private List<ColumnInfo> columns; // 列信息
    // 省略getter和setter方法
}

ColumnInfo类型是表中列的元数据信息类型,定义如下:

/**
 * 列信息
 * Created by liuzh on 2016/12/30.
 */
public class ColumnInfo {
    private String name; // 列名
    private String type; // 数据类型
    private String comment; // 列注释
    private boolean primaryKey; // 是否主键
    private boolean autoIncrement; // 是否自增列
    // 省略getter和setter方法
}

通过${table}变量我们可以在模板中轻松获取到表的基本信息以及表的列信息,例如下面是获取表名和表注释的示例代码:

/**
 * 根据ID更新${table.comment}
 * Generator自动生成的代码,请勿修改
 */
<#-- 获取表名 -->
update ${table.name}
set
    <#-- 获取表注释 -->
    #if (table.comment)?has_content
    <!-- 非主键 更新时间 -->
    update_time = now() <#if table.columns?size != 2>,</#if>
    #end
    <#list table.columns as column>
        <#if !column.primaryKey && !column.autoIncrement>
            ${column.name} = #{${entity.camelName}.${column.camelName}}
            <#if column_has_next>,</#if>
        </#if>
    </#list>
where ${table.primaryKeyColumn} = #{${entity.camelName}.${table.primaryKeyColumn}}
</#if>

2. 可以获取当前模版生成代码的实体类信息

在自定义模版中可以通过${entity}变量来获取当前模板生成代码的实体类信息,包括实体类名、实体类注释、实体类所在包名等信息。该变量是一个Entity类型的对象,该类型定义如下:

/**
 * 实体信息
 * Created by liuzh on 2016/12/30.
 */
public class Entity {
    private String name; // 实体类名
    private String comment; // 实体类注释
    private String packageName; // 实体类所在包名
    private String camelName; // 实体类驼峰名称
    // 省略getter和setter方法
}

通过${entity}变量我们可以在模板中轻松获取到实体类的基本信息,例如下面是获取实体类所在的包及实体类注释的示例代码:

package ${entity.packageName};

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * ${entity.comment} 实体类
 * Generator自动生成的代码,请勿修改
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ${entity.name} implements Serializable {
    private static final long serialVersionUID = 1L;

    // 省略实体类的属性声明
}

综上所述,MP自定义模版提供了丰富的变量信息,使得我们在模板中轻松获取到表的元数据信息及当前模板生成代码的实体类信息,并方便我们根据业务需求快速地生成符合规范的代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用MybatisPlus自定义模版中能获取到的信息 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • 基于java中两个对象属性的比较

    基于Java中两个对象属性的比较 在Java中,可以很方便地比较两个对象的属性。此外,我们还可以实现自定义的类比较规则,以满足更复杂的条件。 对象属性的比较 Java中的比较通常使用equals()方法。这个方法可以用来比较两个对象的所有属性。 示例代码: public class Person { private String name; private …

    Java 2023年5月26日
    00
  • Redis Plus 来了,性能炸裂!

    来源:https://developer.aliyun.com/article/705239 1 什么是KeyDB? KeyDB是Redis的高性能分支,专注于多线程,内存效率和高吞吐量。除了多线程之外,KeyDB还具有仅在Redis Enterprise中可用的功能,例如Active Replication,FLASH存储支持以及一些根本不可用的功能,例如…

    Java 2023年4月25日
    00
  • 详解spring与shiro集成

    对于“详解spring与shiro集成”的完整攻略,我可以提供以下步骤和代码示例供参考: 1. 添加shiro依赖 在项目的pom文件中,添加shiro的依赖: <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-all</…

    Java 2023年5月20日
    00
  • Java SpringBoot整合SpringCloud

    Spring Boot和Spring Cloud是两个非常流行的Java框架,它们可以帮助开发者快速构建分布式应用程序。在本攻略中,我们将详细介绍如何将Spring Boot和Spring Cloud整合在一起,并提供两个示例来说明其用法。 以下是两个示例,介绍如何将Spring Boot和Spring Cloud整合在一起: 示例一:使用Spring Cl…

    Java 2023年5月15日
    00
  • JAVA环境搭建之MyEclipse10+jdk1.8+tomcat8环境搭建详解

    JAVA环境搭建之MyEclipse10+jdk1.8+tomcat8环境搭建详解 本文将为初学者详细讲解如何在Windows操作系统上搭建MyEclipse10+jdk1.8+tomcat8环境,使得能够愉快地进行JAVA程序开发。 1. 准备工作 在进行环境搭建之前,需要确保系统中已经安装好了以下软件: JDK1.8及以上版本 Tomcat8及以上版本 …

    Java 2023年5月19日
    00
  • Java后端Cookie实现(时间戳)代码实例

    请看下面的详细讲解: Java后端Cookie实现(时间戳)代码实例 一、Cookie介绍 Cookie是指服务器通过HTTP响应发送给客户端的一小段文本信息。浏览器会将这些信息存储在客户端,并在下一次访问相同的服务器时发送回服务器。 Cookie可以用于实现在客户端保留数据的功能,比如记住登陆状态、保存浏览历史等。 二、创建Cookie 在Java后端开发…

    Java 2023年6月1日
    00
  • SpringBoot概述及在idea中创建方式

    SpringBoot概述 Spring Boot是一个开源的Java框架,它摆脱了传统Spring框架的繁琐配置,建立在Spring Framework的基础之上。Spring Boot提供了一种快速简便的方式来搭建Java应用程序,并且默认设置对各种Spring组件、外部组件、配置管理等进行了很好的支持。 Spring Boot使用“约定大于配置”的方式来…

    Java 2023年5月15日
    00
  • 在JavaScript中使用for循环的方法

    在 JavaScript 中,for 循环用于重复执行某些代码。for 循环通常用于遍历数组或对象,执行相同的代码多次。 基本格式为: for (初始值; 终止条件; 增量) { // 要执行的代码块 } 其中: 初始值:定义用于循环计数的变量,并设置初始值。 终止条件:定义循环运行条件,如果该条件为 true,则循环继续执行;如果为 false,则循环结束…

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