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

2022-09-19 11:53:49 浏览数 (1)

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

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

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

0 人点赞