mybatis-plus自動填充踩坑


學習使用mybatis-plus的自動填充功能,對create_time和update_time做一個自動填充,期間碰到了一些問題,記錄一下問題和相關代碼🚀

  1. 在實體類字段上增加注解@TableField(fill = FieldFill.INSERT)或者@TableField(fill = FieldFill.UPDATE)

User

  1. 添加MyMetaObjectHandler類(名字可自定義,注意要實現MetaObjectHandler類)

    這塊有個坑,要注意字段類型,mybatis-plus在時間上默認用的是LocalDateTime類,測試的時候沒注意,用了Date類,結果導致值一直添加不進去😂,再提一嘴,strictInsertFill() 方法的第二個參數是類下的字段名,不是數據庫中的字段名

MyMetaObjectHandler

復制代碼或者查看詳情可移步至mybatis-plus官網 👉 mybatis-plus 自動填充功能

或者直接復制如下

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.class, LocalDateTime.now()); // 起始版本 3.3.0(推薦使用)
    }

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

}

因為剛好碰到LocalDateTime這個類,就面向百度學習了一下,找到一篇不錯的博客,推薦一下 👉 JDK8的LocalDateTime用法

話說,LocalDateTime類在JDK8中就有了,現在JDK15已經出來一段時間了(○´・д・)ノ,而咱現在才知道有這個類,看來得多花時間鞏固基礎和不斷學習了😆


注:由於此篇文章核心只是記錄一下問題的解決方案,並不會從建庫建表開始記錄,需要從零搭建測試可移步至 👉 mybatis-plus官網


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM