mybatisPlus自动填充:如果数据表中有字段是每次查询或者修改时都要进行同一策略的变动,如创建人、创建时间、修改人、修改时间等,可以使用自动填充,简化代码

自动填充

一共两步:
1,自定义实现类 MyMetaObjectHandler继承MetaObjectHandler
示例:

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {log.info("start insert fill ....");//setFieldValByName根据字段名填充对应字段值this.setFieldValByName("createUserId", 1, metaObject);this.setFieldValByName("createUserName", "admin", metaObject);this.setFieldValByName("createTime", new Date(), metaObject);}@Overridepublic void updateFill(MetaObject metaObject) {log.info("start update fill ....");this.setFieldValByName("modifyUserId", 1, metaObject);this.setFieldValByName("modifyUserName", "admin", metaObject);this.setFieldValByName("modifyTime", new Date(), metaObject);}
}

2,在对应的需要自动填充的javabean上添加注解@TableField(fill = FieldFill.UPDATE)
示例:

            /*** 创建人ID*/@TableField(fill = FieldFill.INSERT,value = "createUserId")private Integer createUserId;/*** 创建人名称*/@TableField(fill = FieldFill.INSERT,value = "createUserName")private String createUserName;/*** 创建时间*/@TableField(fill = FieldFill.INSERT,value = "createTime")private LocalDateTime createTime;/*** 最后修改人ID*/@TableField(fill = FieldFill.UPDATE,value = "modifyUserId")private Integer modifyUserId;/*** 最后修改人名称*/@TableField(fill = FieldFill.UPDATE,value = "modifyUserName")private String modifyUserName;/*** 最后修改时间*/@TableField(fill = FieldFill.UPDATE,value = "modifyTime")private LocalDateTime modifyTime;

备注:file的几个可选枚举值

public enum FieldFill {/*** 默认不处理*/DEFAULT,/*** 插入填充字段*/INSERT,/*** 更新填充字段*/UPDATE,/*** 插入和更新填充字段*/INSERT_UPDATE
}

上一篇:MyBatis Plus逆向生成

MybatisPlus进阶(三)——自动填充相关推荐

  1. MyBatis-Plus 高级功能 —— 自动填充功能

    一.引言 小编先来解释下自动填充是做什么的,大家有没有在数据入库的时候,不管新增或者修改数据,都要手动来设置添加时间和修改时间.而且每个插入都需要设置,而且数据库还设置不能为空,就很烦恼. 虽然可以在 ...

  2. MyBatis-Plus——自动填充功能实现

    文章目录 MyBatis-Plus--自动填充功能 1.什么是自动填充 2.数据库层面实现 3.编程实现(推荐) MyBatis-Plus--自动填充功能 1.什么是自动填充 有些表中会有更新时间up ...

  3. mybatis-plus实现自动填充数据如:数据库中createTime和updateTime

    关于数据库中每个表中,或者会有需要记录表中数据修改的时间.这个时候应该怎么做呢.当然我们的常规做法就是,首先在数据库中添加两个字段 然后在实体类中添加两个属性 private Date createT ...

  4. 【MyBatis-Plus】实现字段自动填充功能

    一.前言 在项目中,我们有一些公共的字段需要做修改 如: gmt_create:创建时间 creator_id:创建人 gmt_modified:修改时间 modifier_id:修改人 这时候我们可 ...

  5. mybatis 乐观锁_MybatisPlus新特性之逻辑删除、乐观锁、自动填充

    MP特性 公共字段的自动填充功能 自动更新全局属性,比如创建的时间修改的时间,这样就不用每执行一次插入更新操作都带上一个set大大节省了很多效率,从而也避免为了因为时间格式的不统一问题. 为了输出日志 ...

  6. MyBatis-Plus 扩展篇 > 自动填充功能

    目标: 懂得实现 Mybatis-Plus的自动填充 实现步骤: 1.新建一个handle类 实现元对象处理器接口 2.实体类属性上 添加对应的注解(注解填充字段 @TableField) 一.如何理 ...

  7. mybatis-plus 初始化项目 主键自增策略 自动填充 逻辑删除 乐观锁 复杂查询 分页查询

    一创建数据库(添加数据) 二 创建springboot工程 导入工程所需要的依赖(mybatis-plus,mysql-connector-java,lombok) <dependency> ...

  8. Mybatis-Plus自动填充的实现示例

    在常用业务中有些属性需要配置一些默认值,MyBatis-Plus提供了实现此功能的插件.在这里修改user表添加 create_time 字段和 update_time 字段,在User类中添加对应属 ...

  9. MyBatis-Plus 乐观锁 防止超卖、逻辑删除、自动填充、Id自增

    MyBatis-Plus 乐观锁 防止超卖.逻辑删除.自动填充 Day3 前面的简单的讲了一下mybatis-plus的使用 当然有很多不足 我写博客就是想促进大家一起学习 也想让这些内容更简单一些. ...

最新文章

  1. 微软BI 之SSIS 系列 - Lookup 组件的使用与它的几种缓存模式 - Full Cache, Partial Cache, NO Cache...
  2. 存储过程结果更改编码_Docker安装Minio存储服务器详解
  3. eclipse导入项目后出现红色叉号的解决方案
  4. android下raw目录的作用,【android】读取/res/raw目录下的文件
  5. 张高兴的 .NET Core IoT 入门指南:(五)串口通信入门
  6. 【OpenCV 例程200篇】96. 谐波平均滤波器
  7. ​腾讯第一季度员工平均月薪 7.6 万元;“淘宝特价版”App 正式更名为“淘特”;Deno 1.10 正式发布|极客头条...
  8. mysql的权限管理
  9. Java 输入/输出 I/O流 RandomAccessFile
  10. 在eclipse中修改android源码
  11. SpringBoot Kafka工具类封装
  12. 完美解决虚拟机占用硬盘越来越大、删除快照无效、菜单栏显示不全等问题
  13. SPRINGBOOT启动流程及其原理
  14. 解决win10莫名其妙重启问题
  15. C语言运算符的优先级大全
  16. VS2019 MFC ODBC 操作SQL SERVER 数据库
  17. nginx打包文件以及解压
  18. 2000年数模B题 钢管订购和运输
  19. abap日期函数_ABAP - 日期格式转换 ABAP常用日期处理函数
  20. 飞桨赋能润建股份打造智能化路网系统,实现精度速度全面提升

热门文章

  1. 服务器-epoll之缓冲区
  2. java基础理论知识点
  3. NYOJ-999-师傅又被妖怪抓走了
  4. 基于react的影院购票应用
  5. 生活记录:其实超度的是活着的人
  6. linux下优盘格式化,linux下格式化u盘
  7. 谭浩强C++ 第八章
  8. 中国超级计算机计算圆周率,圆周率都已算到31.4万亿位,为什么超级计算机还在算圆周率?...
  9. 怎么查看自己云服务器信息吗,怎么查看自己云服务器信息吗
  10. UGUI源码解析(二十二)ContentSizeFitter