mybatis-plus 新增/修改实现自动填充指定字段

2023-11-13

  1. 需要修改的字段在模型类上添加 @TableField(fill = FieldFill.xxx) 注解。
  • FieldFill的选项:
    在这里插入图片描述

哪个字段在什么时候填充需要手动设置注解
在这里插入图片描述

  1. 新建一个MetaObjectHandler的实现类MyMetaObjectHandler
package com.demo.mp.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Objects;

@Component // 注入bean
public class MyMetaObjectHandler implements MetaObjectHandler {

  /**
   * @Description: 新增时填充
   *
   * @auther: zpq
   * @date: 2020/11/2 2:26 下午
   */
  @Override
  public void insertFill(MetaObject metaObject) {

    // this.setFieldValByName(字段名, 内容, metaObject:用这个对象进行填充用的,称为元数据对象);

    this.setFieldValByName("createBy", "admin", metaObject);

    // ================setFieldValByName 方法内的内容,有兴趣可以进去看一看,中文注释的==================================================
    /// **
    // * 通用填充
    // *
    // * @param fieldName  java bean property name
    // * @param fieldVal   java bean property value
    // * @param metaObject meta object parameter
    // */
    // default MetaObjectHandler setFieldValByName(String fieldName, Object fieldVal, MetaObject
    // metaObject) {
    //  if (Objects.nonNull(fieldVal) && metaObject.hasSetter(fieldName)) {
    //    metaObject.setValue(fieldName, fieldVal);
    //  }
    //  return this;
    // }
  }

  /**
   * * @Description: 更新时填充
   *
   * @auther: zpq
   * @date: 2020/11/2 11:37 上午
   */
  @Override
  public void updateFill(MetaObject metaObject) {
    this.setFieldValByName("updateBy", "admin", metaObject);
  }
}
  • 完成之后就可以使用了

注意: 当你设置了逻辑删除,在逻辑删除的时候,是不会进行修改填充的,这个需要注意一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mybatis-plus 新增/修改实现自动填充指定字段 的相关文章

随机推荐

  • poj1338【丑数·DP】

    我记得这道题以前写过 而且是写出来了 DP吧 然后现在想了好久 没想出来 然后考虑一下递推 mdzz 直接就是让之前的这个每次乘以2 3 5就好了嘛 然后每轮取最小 include
  • jquery form表单.serialize()序列化后中文乱码问题原因及解决decodeURIComponent

    jquery form表单 serialize 序列化后中文乱码问题原因及解决 原因 serialize 自动调用了encodeURIComponent方法将数据编码了 解决方法 调用decodeURIComponent XXX true
  • 列表list转树形结构(python/golang/js/php)

    文章目录 1 原数据 2 利用对象内存共享生成嵌套结构 2 1 算法原理 2 2 算法实现 2 2 1 JS 2 2 2 Python 2 2 3 go 2 2 4 php 2 3 运行结果 3 递归 3 1 算法实现 3 1 1 pyth
  • 基于协同过滤算法的书籍推荐 毕业设计-附源码101555

    摘 要 21世纪的今天 随着社会的不断发展与进步 人们对于信息科学化的认识 已由低层次向高层次发展 由原来的感性认识向理性认识提高 管理工作的重要性已逐渐被人们所认识 科学化的管理 使信息存储达到准确 快速 完善 并能提高工作管理效率 促进
  • 微服务restful风格,用Post在服务之间发送请求接收不到参数接收不到问题(@RequestParam和@RequestBody)

    上代码 发送端 接收端 问题 发送端可以接受从前段传过来的数据 但是请求接收端时 接收端可以接收url请求 但是参数传不到接收端 分析 用get和post传输的数据是截然不同的 用get是追加在url之后 直接放在请求头 但是post请求的
  • 体验css:repeat和grid

    文章目录 一 repeat 1 语法 2 auto fill和auto fit 3 专属尺寸 fr auto max content min content 二 grid 1 设置grid布局 2 设置列宽行高 3 设置间距 4 设置分区
  • 【C++实现】 数据库连接池

    文章目录 涉及知识 为什么要弄连接池 功能介绍 成员变量讲解 代码剖析 Connection h Connection cpp ConnectionPool h ConnectionPool cpp 性能测试 难点 总结 涉及知识 MySQ
  • 解一元二次方程——Java

    解一元二次方程 可以使用下面的公式求元二次方程ax x bx c 0的两个根 b b 4ac称作一元二次方程的判别式 如果它是正值 那么一元二次方程就有两个实数根 如果它为0 方程式就只有一个根 如果它是负值 方程式无实数根 编写程序 提示
  • js中使用websocket

    后端地址是http的 websocket地址 ws开头 后端地址是https的 websocket地址wss开头 对于websocket没有跨域的问题 import MessageBox from element ui let url ws
  • Linux学习笔记--8(文件权限)

    文件权限与归属 Linux不同的字符来区分文件类型 常见如下 普通文件 d 目录文件 l 链接文件 b 块设备文件 c 字符设备文件 p 管道文件 对应目录文件 可读 表示能够读取目录内的文件列表 可写 表示能够在目录内新增 删除 重命名文
  • Oracle : ORA-02290: 违反检查约束条件

    背景 一个oracle表 有个字段开始被设置不为空 后来我想测试 把这个不为空 去掉了 然后保存 就报错 om dtwave meteor connector common exception ConnectorException Writ
  • 感知机原始形式、对偶形式的Python实现

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 感知机学习的目标就是求得一个能够将训练数据集中正负实例完全分开的分类超平面 感知机原始形式 from future import division import rando
  • Rabbitmq延迟队列实现定时任务

    场景 开发中经常需要用到定时任务 对于商城来说 定时任务尤其多 比如优惠券定时过期 订单定时关闭 微信支付2小时未支付关闭订单等等 都需要用到定时任务 但是定时任务本身有一个问题 一般来说我们都是通过定时轮询查询数据库来判断是否有任务需要执
  • 多态数组的简单代码教学

    多态数组的简单代码教学 package com hspedu polrArr public class PloyArray public static void main String args Person persons new Per
  • 基于github搭建自已的个人博客

    昨天搭建了基于github 的个人博客 在此记录搭建过程 1 环境准备 1 1 git 1 2 nodejs 1 3 hexo 1 安装命令 npm install hexo g 2 测试是否安装成功 hexo v 3 安装hexo依赖 n
  • vue 虚拟dom转换真实dom源码解析

    当不断的通过JS修改DOM时 不经意间会触发到渲染引擎的回流或者重绘 这个性能开销是非常巨大的 因此为了降低开销 我们需要做的是尽可能减少DOM操作 当我们想用JS脚本大批量进行DOM操作时 会优先作用于Virtual DOM这个JS对象
  • TCP和UDP相关问题

    目录 一 网络基础 1 OSI 七层模型划分为以下七层 不实用 2 TCP IP五层 或四层 模型 二 UDP与TCP的区别 三 如何基于UDP协议实现可靠传输 实际想说的是TCP 四 什么场景中适合使用TCP和UDP 一 网络基础 1 O
  • java web系统设计思路_JavaWeb——实战入门,设计思路总结。

    期末考试炸掉了 关于此次期末考试题 我一言难尽 过后总结 还是应该加强功底 勤能补拙 做一篇入门的设计思路总结 巩固一下基础 如讲解有误 请多多包涵 我的设计思路如下 1 在navicat mysql可视化 上建立数据库 gt 建立数据表
  • 实现计算机视觉——人脸检测

    概述 计算视觉是人工智能的一部分 旨在设计能够像人类视觉一样进行观察的智能算法 在本文中 我们将介绍三个主要范围 人脸检测 物体检测 面部识别 对象跟踪 在第一篇文章中 我们将重点介绍计算机视觉 以及基于 Python OpenCV 库的人
  • mybatis-plus 新增/修改实现自动填充指定字段

    需要修改的字段在模型类上添加 TableField fill FieldFill xxx 注解 FieldFill的选项 哪个字段在什么时候填充需要手动设置注解 新建一个MetaObjectHandler的实现类MyMetaObjectHa