MybatisPlus公共字段自动注入方法实现

 更新时间:2025年08月21日 09:48:57   作者:Sonryonha  
本文介绍了MybatisPlus公共字段自动注入方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在pom.xml文件中引入MybatisPlus坐标

            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.5.1</version>
            </dependency>

创建MybatisPlusHandler类

说明:通过继承MybatisPlus中的MetaObjectHandler类,然后重写insertFill和updateFill方法,通过setFieldValByName()方法设定公共字段,就可以在进行新增和更新操作前,对方法进行拦截

// MybatisPlus 公共字段自动填充
@Component
@Slf4j
public class MybatisPlusHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", LocalDateTime.now(), metaObject);
        this.setFieldValByName("createUser", BaseContext.getCurrentId(), metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
        this.setFieldValByName("updateUser", BaseContext.getCurrentId(), metaObject);
    }
}

通过@TableName,@TableField(fill = FieldFill.XX)注解指定目标实体类以及类中的公共字段

说明:新增类型公共字段就使用.INSERT,更新就使用.UPDATE

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("employee")
public class Employee implements Serializable {

    private static final long serialVersionUID = 1L;


    @TableId(type = IdType.AUTO)
    private Long id;

    private String username;

    private String name;

    private String password;

    private String phone;

    private String sex;

    private String idNumber;

    private Integer status;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;

    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    @TableField(fill = FieldFill.UPDATE)
    private Long updateUser;

}

最后在调用新增或者更新方法时就能自动为公共字段赋值了。

到此这篇关于MybatisPlus公共字段自动注入方法实现的文章就介绍到这了,更多相关MybatisPlus公共字段自动注入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring IOC功能详解

    Spring IOC功能详解

    在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制,本文给大家介绍Spring IOC的相关知识,感兴趣的朋友一起看看吧
    2025-06-06
  • java微信公众号企业付款开发

    java微信公众号企业付款开发

    这篇文章主要为大家详细介绍了java微信公众号企业付款开发,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • 详解HttpSecurity是如何组装过滤器链的

    详解HttpSecurity是如何组装过滤器链的

    HttpSecurity 本质上也是一个 SecurityBuilder,我们平时在 HttpSecurity 配置的各种东西,本质上其实就是一个 xxxConfigure,这些 xxxConfigure 被 HttpSecurity 收集起来,本文将给大家介绍HttpSecurity是如何组装过滤器链的,需要的朋友可以参考下
    2024-06-06
  • SpringCloud Zuul实现负载均衡和熔断机制方式

    SpringCloud Zuul实现负载均衡和熔断机制方式

    这篇文章主要介绍了SpringCloud Zuul实现负载均衡和熔断机制方式,具有很好的参考价值,希望对大家有所帮助。
    2021-07-07
  • Java处理压缩文件的步骤详解

    Java处理压缩文件的步骤详解

    在Java编程环境中,处理zip压缩文件是一项常见的任务,特别是在数据传输、备份或者打包应用程序时,本文将详细讲解Java处理压缩文件的步骤,并有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-10-10
  • 关于线程池创建、执行、销毁的原理及分析

    关于线程池创建、执行、销毁的原理及分析

    这篇文章主要介绍了关于线程池创建、执行、销毁的原理及分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Java使用itextpdf实现表单导出为pdf

    Java使用itextpdf实现表单导出为pdf

    这篇文章主要为大家详细介绍了Java如何使用itextpdf实现form表单导出为pdf,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-06-06
  • SpringBoot 集成 Jasypt 对数据库加密以及踩坑的记录分享

    SpringBoot 集成 Jasypt 对数据库加密以及踩坑的记录分享

    这篇文章主要介绍了SpringBoot 集成 Jasypt 对数据库加密以及踩坑,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • springboot IDEA启动两个端口服务nginx负载过程

    springboot IDEA启动两个端口服务nginx负载过程

    这篇文章主要介绍了springboot IDEA启动两个端口服务nginx负载过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Jar包和War包的使用与区别解读

    Jar包和War包的使用与区别解读

    这篇文章主要介绍了Jar包和War包的使用与区别,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06

最新评论