前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyBatis-Plus 基础+进阶+实战 之 基础字段自动填充

MyBatis-Plus 基础+进阶+实战 之 基础字段自动填充

作者头像
AI码师
发布2022-09-19 11:53:49
2620
发布2022-09-19 11:53:49
举报

B站(乐哥聊编程)、西瓜(乐哥聊编程) 有完整配套视频,免费观看

前言

在项目开发过程中,我们定义的实体一般都会包含基础字段,如:createTime、updateTime、createBy、updateBy,通常做法就是在更新或插入之前,手动去更新这些字段,但是我们如果使用MyBatisPlus,就不需要手动去写了.

必备注解

代码语言:javascript
复制
public enum FieldFill {
    /**
     * 默认不处理
     */
    DEFAULT,
    /**
     * 插入填充字段
     */
    INSERT,
    /**
     * 更新填充字段
     */
    UPDATE,
    /**
     * 插入和更新填充字段
     */
    INSERT_UPDATE
}

快速使用

核心配置

代码语言:javascript
复制
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.time.LocalDateTime;

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill ....");
        // 或者
        this.strictInsertFill(metaObject, "createTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start update fill ....");
        this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
    }
}

具体使用

代码语言:javascript
复制
    @TableField(fill= FieldFill.INSERT)
    private LocalDateTime createTime;
    @TableField(fill= FieldFill.UPDATE)
    private LocalDateTime updateTime

成长心路 | 优质书单 | 面试资料

牛人故事 | 前沿技术 | 视频教程

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乐哥聊编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 必备注解
    • 快速使用
      • 核心配置
        • 具体使用
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档