Mybatis plus通用字段自动填充的示例

下面详细讲解"Mybatis Plus通用字段自动填充"的完整攻略:

什么是MyBatis Plus通用字段自动填充?

通用字段自动填充是 MyBatis Plus 提供的一个便捷的功能,在这个功能中,我们可以指定公用的字段如:创建时间、更新时间、创建人、更新人等,当插入或修改一条数据时,这些字段会自动填充。

如何实现?

MyBatis Plus 给我们提供了一个接口来实现通用字段自动填充,代码如下:

public interface MetaObjectHandler {

    /**
     *  插入时自动填充数据
     * @param entity 实体类对象
     */
    void insertFill(MetaObject metaObject);

    /**
     * 更新时自动填充数据
     * @param entity 实体类对象
     */
    void updateFill(MetaObject metaObject);

}

当在实体类中定义字段时,若要该字段支持自动填充,则要在该字段上标记 @TableField 注解。@TableField 注解中的 fill 属性就负责指定自动填充的类型,有如下四种:

  • FieldFill.DEFAULT:不填充
  • FieldFill.INSERT:插入时填充
  • FieldFill.UPDATE:更新时填充
  • FieldFill.INSERT_UPDATE:插入和更新时都填充

示例1:自动填充创建时间、创建人

public class User {

    /**
     * 用户编号
     */
    private Long id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 更新人
     */
    @TableField(fill = FieldFill.UPDATE)
    private String updateBy;

    // 省略 getter 和 setter 

}

在插入一条数据时,创建时间和创建人会自动填充,而更新时间和更新人则不会。

示例2:自动填充更新时间、更新人

public class User {

    /**
     * 用户编号
     */
    private Long id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /**
     * 更新人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    // 省略 getter 和 setter 

}

在插入或更新一条数据时,创建时间和创建人会自动填充,而更新时间和更新人则都会自动填充。

以上就是 MyBatis Plus 通用字段自动填充的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis plus通用字段自动填充的示例 - Python技术站

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

相关文章

  • 微软发布Win10创意者更新15063 SDK下载地址(附更新内容及已知问题)

    微软发布Win10创意者更新15063 SDK下载地址(附更新内容及已知问题)攻略 1. 下载SDK 微软发布了Win10创意者更新15063的SDK,您可以按照以下步骤下载SDK: 打开微软的开发者网站 https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk。 在页面上找…

    other 2023年8月3日
    00
  • Android仿ios加载loading菊花图效果

    以下是 Android 仿 iOS 加载 loading 菊花图效果的完整攻略。 1. 了解需求及基本原理 在开发过程中,我们需要制作一个和 iOS 类似的加载 loading 菊花图效果。实现这个效果大体可以分成两个步骤: 定义布局文件,通过布局文件设置 loading 菊花图图像的大小和位置; 通过代码控制 loading 菊花图的显示和隐藏,实现动态效…

    other 2023年6月25日
    00
  • webservice服务调用方法介绍

    Webservice服务调用方法介绍 在程序开发中,服务调用是十分常见的操作。而Webservice是一种可跨平台互操作的服务架构,可以通过SOAP、WSDL和HTTP协议来提供和发布服务。本文将介绍如何使用两种主流的方法来调用Webservice服务。 方法一:使用SOAP UI SOAP UI是一种通用的Webservice测试工具,它可以通过WSDL文…

    其他 2023年3月28日
    00
  • Android中用Builder模式自定义Dialog的方法

    当在Android应用程序中需要自定义对话框时,可以使用Builder模式来创建和配置对话框。Builder模式提供了一种简洁的方式来构建和设置对话框的各个属性。下面是使用Builder模式自定义Dialog的方法的详细攻略: 创建自定义对话框的布局文件: 首先,创建一个XML布局文件来定义自定义对话框的外观和布局。例如,创建一个名为custom_dialo…

    other 2023年9月6日
    00
  • MFC中动态创建控件以及事件响应实现方法

    下面是详细讲解MFC中动态创建控件以及事件响应实现方法的完整攻略。 1. 动态创建控件 在MFC中,动态创建控件通常需要以下步骤: (1) 准备控件类 首先需要自定义一个控件类,例如: class CMyButton : public CButton { public: void DoSomething(); // other functions }; (2…

    other 2023年6月26日
    00
  • gradle插件版本和gradle版本对应关系

    以下是gradle插件版本和gradle版本对应关系的完整攻略: Gradle插件版本和Gradle版本之间有一定的对应关系。不同的Gradle插件版本需要不同的Gradle版本才能正常工作。以下是Gradle插件版本和Gradle版本的对应关系: Gradle插件版本 Gradle版本 1.0.0 – 1.1.x 1.12 – 2.3 1.2.0 – 1.…

    other 2023年5月8日
    00
  • 5-5springgateway网关-y_zoran-博客园

    5-5 Spring Gateway网关 – y_zoran – 博客园 什么是Spring Cloud Gateway Spring Cloud Gateway是Spring Cloud生态系统中的网关。类似于ZUUL网关,它可以处理路由请求,执行过滤等操作,可以实现对微服务请求的统一管理,同时还支持WebSocket、HTTP请求转发、负载均衡等功能。 …

    其他 2023年3月28日
    00
  • AngularJS入门心得之directive和controller通信过程

    当然!下面是关于\”AngularJS入门心得之directive和controller通信过程\”的完整攻略,包含两个示例说明。 directive和controller通信过程 在AngularJS中,directive和controller之间的通信可以通过多种方式实现。下面是一种常见的通信方式: 在directive中使用require选项:在dir…

    other 2023年8月20日
    00
合作推广
合作推广
分享本页
返回顶部