mybatisplus实现自动填充 时间

mybatisplus实现自动填充功能——自动填充时间

数据库表中的字段

  • 创建时间 (createTime)
  • 更新时间 (updateTime)

每次 增删改查的时候,需要通过对Entity的字段(createTime,updateTime)进行set设置,但是,每次增删改 都要set设置比较麻烦。

  • 使用自动填充功能,就不用我们自己set了。

1、在实体类Entity中 添加注解

  • @TableField(fill = FieldFill.INSERT) //插入时自动填充
  • @TableField(fill = FieldFill.INSERT_UPDATE) // 插入更新时 自动填充

在这里插入图片描述
2、配置自动填充 拦截器
在这里插入图片描述
在这里插入图片描述

3、数据库表中 创建时间,更新时间,创建人,更新人 字段名。
在这里插入图片描述

4、自动填充 拦截器
MyMetaObjectHandler

package com.sangeng.handler.mybatisplus;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.sangeng.utils.SecurityUtils;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {//实现MetaObjectHandler
    //配置自动填充 拦截器
    //insert操作时填充方法
    @Override
    public void insertFill(MetaObject metaObject) {
        Long userId = null;
//        try {
            userId = SecurityUtils.getUserId(); //从token中拿到userid,自动填充
//        } catch (Exception e) {     e.printStackTrace();
//        注册的时候,不能获取当前userid,所以userid设置为-1
//           userId = -1L;//表示是自己创建
//        }
        this.setFieldValByName("createTime", new Date(), metaObject);   //创建时间
        this.setFieldValByName("createBy",userId , metaObject);         //创建人
        this.setFieldValByName("updateTime", new Date(), metaObject);   //更新时间
        this.setFieldValByName("updateBy", userId, metaObject);         //更新人
    }
    //update操作时填充方法
    @Override
    public void updateFill(MetaObject metaObject) { //填充 更新时间
        this.setFieldValByName("updateTime", new Date(), metaObject);
//        this.setFieldValByName(" ", SecurityUtils.getUserId(), metaObject);
    }
}

实体类

    @TableField(fill = FieldFill.INSERT) //插入时 自动添加创建人
    private Long createBy;
    @TableField(fill = FieldFill.INSERT) //插入时 自动添加 创建时间
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE) //插入更新时 自动添加 更新人
    private Long updateBy;
    @TableField(fill = FieldFill.INSERT_UPDATE) //插入更新时 自动添加 更新时间
    private Date updateTime;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/58682.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

途乐证券|俄罗斯宣布9月削减石油出口量

当地时间周四,美股兜售潮仍在持续,三大股指连续第二个交易日团体收跌。到收盘,道指跌落0.19%,标普500指数跌落0.25%,纳指跌幅为0.10%。 美国ISM7月非制造业PMI下滑 数据面上,美国供应办理协会ISM周四发布的…

电力巡检无人机助力迎峰度夏,保障夏季电力供应

夏季是电力需求量较高的时期,随着高温天气的来临,风扇、空调和冰箱等电器的使用量也大大增加,从而迎来夏季用电高峰期,电网用电负荷不断攀升。为了保障夏季电网供电稳定,供电公司会加强对电力设施设备的巡检&#xff0…

mmap函数详解

1、什么是mmap mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。 实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存&#x…

Android入门教程||Android 架构||Android 应用程序组件

Android 架构 Android 操作系统是一个软件组件的栈,在架构图中它大致可以分为五个部分和四个主要层。 Linux内核 在所有层的最底下是 Linux - 包括大约115个补丁的 Linux 3.6。它提供了基本的系统功能,比如进程管理,内存管理,设…

Android 面试题 应用程序结构 十一

🔥 Framework主要包含以下模块 🔥 ActivityManagerService 这是一个Activity的管理者,负责管理所有Activity的生命周期。WindowManagerService 它是手机屏幕的的管理者,管理着屏幕的详细情况,所有对屏幕的操作最终都…

express学习笔记4 - 热更新以及express-boom

我们每次改动代码的时候都要重启项目,现在我们给项目添加一个热更新 npm install --save-dev nodemon # or using yarn: yarn add nodemon -D 在package.json添加一行代码 "dev": "nodemon ./bin/www" 重启项目 然后随便做改动&#xff…

【初阶C语言】学会结构体

1.结构体类型的声明 2.结构体初始化 3.结构体成员访问 4.结构体传参 前言:结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 一、结构体类型的声明 1.结构的声明 结构体声明的模板: struct tag {member-li…

Java版工程行业管理系统源码-专业的工程管理软件-em提供一站式服务

​ Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目…

sqlyog导出mysql数据字典

1.打开sqlyog执行sql获取字典数据 SELECTt.COLUMN_NAME AS 字段名,t.COLUMN_TYPE AS 数据类型,CASE IFNULL(t.COLUMN_DEFAULT,Null) WHEN THEN 空字符串 WHEN Null THEN NULL ELSE t.COLUMN_DEFAULT END AS 默认值,CASE t.IS_NULLABLE WHEN YES THEN 是 ELSE 否 END AS 是否…

docker的使用

docker安装 https://docs.docker.com/engine/install/debian/ 设置国内镜像 创建或修改 /etc/docker/daemon.json 文件,修改为如下形式 {"registry-mirrors": ["https://registry.hub.docker.com","http://hub-mirror.c.163.com"…

音频光耦合器

音频光耦合器是一种能够将电信号转换为光信号并进行传输的设备。它通常由发光二极管(LED)和光敏电阻(光电二极管或光敏电阻器)组成。 在音频光耦合器中,音频信号经过放大和调节后,被转换为电流信号&#xf…

opencv基础40-礼帽运算(原始图像减去其开运算)cv2.MORPH_TOPHAT

礼帽运算是用原始图像减去其开运算图像的操作。礼帽运算能够获取图像的噪声信息,或者得到比原始图像的边缘更亮的边缘信息。 例如,图 8-22 是一个礼帽运算示例,其中: 左图是原始图像。中间的图是开运算图像。右图是原始图像减开运…

LeetCode 热题 100 JavaScript--543. 二叉树的直径

给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 var diameterOfBinaryTree function(root) {var maxDiameter…

多雷达探测论文阅读笔记:雷达学报 2023, 多雷达协同探测技术研究进展:认知跟踪与资源调度算法

多雷达协同探测技术 原始笔记链接:https://mp.weixin.qq.com/s?__biz=Mzg4MjgxMjgyMg==&mid=2247486627&idx=1&sn=f32c31bfea98b85f2105254a4e64d210&chksm=cf51be5af826374c706f3c9dcd5392e0ed2a5fb31ab20924b7dd38e1b1ae32abe9a48afa8174#rd ↑ \uparrow …

视频过大如何压缩变小?文件压缩技巧分享

如何压缩视频是许多视频编辑者、视频上传者经常遇到的问题,如果你也遇到了这个问题,不用担心,下面将就给大家分享几个视频压缩方法,可以帮助大家轻松地压缩视频,同时保持视频的高清晰度和音频质量。 一、嗨格式压缩大师…

【Kubernetes】

目录 一、Kubernetes 概述1、K8S 是什么?2、为什么要用 K8S?3、Kubernetes 集群架构与组件 二、核心组件1、Master 组件2、Node 组件3、K8S创建Pod的工作流程?(重点)4、K8S资源对象(重点)5、Kubernetes 核…

Java课题笔记~ MyBatis入门

一、ORM框架 当今企业级应用的开发环境中,对象和关系数据是业务实体的两种表现形式。业务实体在内存中表现为对象,在数据库中变现为关系数据。当采用面向对象的方法编写程序时,一旦需要访问数据库,就需要回到关系数据的访问方式&…

偶数科技亮相第十届中国中小企业投融资交易会

第十届中国中小企业投融资交易会暨2023“小企业 大梦想”高峰论坛近日在北京举办。本届大会以“金融活水精准滴灌 专精特新体制增量”为主题,通过展览展示、论坛活动、项目路演、产融对接等形式,搭建了专精特新企业与金融机构之间、与地方政府之间的产融…

虹科活动 | 走进宇通客车-汽车新供应链技术展精彩回顾

引言 7月27日,走进宇通客车-汽车新供应链技术展于宇通研发中心成功举办,本次展会中虹科为大家带来了一体化车载天线与车辆GNSS仿真测试方案,感谢您前来探讨与交流! 精彩产品一览 车辆GNSS仿真测试方案 虹科高性能GNSS模拟器具有灵…

Dockerfile构建LNMP镜像

建立工作目录 [rootlocalhost ~]# mkdir lnmp [rootlocalhost ~]# cd lnmp/ 编写Dockerfile文件 [rootlocalhost lnmp]# vim Dockerfile [rootlocalhost lnmp]# ll 总用量 4 -rw-r--r--. 1 root root 774 8月 3 14:54 Dockerfile [rootlocalhost lnmp]# vim Dockerfile #基础…