当前位置: 首页 > news >正文

Mybatis-Plus中的MetaObjectHandler

简介

MetaObjectHandler 是一个非常有用的组件,用于处理实体对象中的字段填充逻辑,比如自动填充创建时间、更新时间、创建人、修改人等字段。

组件介绍

MetaObjectHandler 接口允许在不修改业务代码的情况下,对实体类中的字段进行自动填充。这通常用于记录创建时间、更新时间、创建人、修改人等元数据信息。例如,在用户注册时自动设置创建时间,在更新用户信息时自动更新最后修改时间。

此处实现自动填充创建人、修改人
创建时间、修改时间等交给MySQL进行自动填充

使用

  • 实现 MetaObjectHandler 接口:
    首先需要创建一个类实现 MetaObjectHandler 接口,并重写其中的方法。
package com.zk.app.handler;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.zk.app.utils.UserThreadLocalUtil;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;/*** @program: ZK* @description: 自定义mubatisplust填充* @author: zk* @create: 2024-07-17 11:30**/
@Component
public class ZKMetaObjectHandler implements MetaObjectHandler {/*** 创建人字段*/private static final String CREATE_USER_ID = "createUserId";/*** 修改人字段*/private static final String UPDATE_USER_ID = "updateUserId";@Overridepublic void insertFill(MetaObject metaObject) {this.setUserId(metaObject, true);}@Overridepublic void updateFill(MetaObject metaObject) {this.setUserId(metaObject, false);}private void setUserId(MetaObject metaObject, boolean isInsert) {Long userId = UserThreadLocalUtil.getUserId();if (userId > 0) {if (isInsert) {this.setFieldValByName(CREATE_USER_ID, userId, metaObject);}this.setFieldValByName(UPDATE_USER_ID, userId, metaObject);}}
}

通过insertFillupdateFill在新增/更新时进行自动填充
UserThreadLocalUtilThreadLocal,主要为存储当前线程的用户信息


结束


http://www.mrgr.cn/news/6927.html

相关文章:

  • 【第79课】服务攻防-中间件安全IISApacheTomcatNginx弱口令错误配置CVE
  • 案例分享—国外金融软件界面设计
  • 3145. 大数组元素的乘积(24.8.23)
  • 机器学习笔记 第十四章概率图模型
  • vue3 响应式 API:computed()
  • 企业监控大盘Grafana
  • 这是啥设计模式-观察者模式
  • B/S架构和C/S架构的区别
  • 内存管理篇-02内存硬件电路和接口
  • 设计模式 6 适配器模式
  • 84.游戏改造-窗口化下的分辨率
  • 在 Ubuntu 22.04 中将 Pycharm.desktop 文件标记为可信的步骤
  • 黑神话悟空什么配置可以玩?什么样的游戏本配置可以畅玩《黑神话:悟空》?黑神话悟空电脑配置推荐
  • 【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(十三)
  • 【C++】单例模式的解析与应用
  • JWT(JSON WEB TOKEN)详解
  • 【操作系统】10.虚拟内存管理有什么不同?
  • 重磅发布!天途多自由度无人机调试台
  • springboot中interceptor拦截器匹配URL源码
  • 【深度学习与NLP】——Transformer架构解析