mybatisplus實(shí)現(xiàn)自動(dòng)填充時(shí)間的項(xiàng)目實(shí)踐
數(shù)據(jù)庫表中的字段
- 創(chuàng)建時(shí)間 (createTime)
- 更新時(shí)間 (updateTime)
每次 增刪改查的時(shí)候,需要通過對Entity的字段(createTime,updateTime)進(jìn)行set設(shè)置,但是,每次增刪改 都要set設(shè)置比較麻煩。
- 使用自動(dòng)填充功能,就不用我們自己set了。
1、在實(shí)體類Entity中 添加注解
- @TableField(fill = FieldFill.INSERT) //插入時(shí)自動(dòng)填充
- @TableField(fill = FieldFill.INSERT_UPDATE) // 插入 和 更新時(shí) 自動(dòng)填充
2、配置自動(dòng)填充 攔截器
3、數(shù)據(jù)庫表中 創(chuàng)建時(shí)間,更新時(shí)間,創(chuàng)建人,更新人 字段名。
4、自動(dòng)填充 攔截器
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 {//實(shí)現(xiàn)MetaObjectHandler //配置自動(dòng)填充 攔截器 //insert操作時(shí)填充方法 @Override public void insertFill(MetaObject metaObject) { Long userId = null; // try { userId = SecurityUtils.getUserId(); //從token中拿到userid,自動(dòng)填充 // } catch (Exception e) { e.printStackTrace(); // 注冊的時(shí)候,不能獲取當(dāng)前userid,所以userid設(shè)置為-1 // userId = -1L;//表示是自己創(chuàng)建 // } this.setFieldValByName("createTime", new Date(), metaObject); //創(chuàng)建時(shí)間 this.setFieldValByName("createBy",userId , metaObject); //創(chuàng)建人 this.setFieldValByName("updateTime", new Date(), metaObject); //更新時(shí)間 this.setFieldValByName("updateBy", userId, metaObject); //更新人 } //update操作時(shí)填充方法 @Override public void updateFill(MetaObject metaObject) { //填充 更新時(shí)間 this.setFieldValByName("updateTime", new Date(), metaObject); // this.setFieldValByName(" ", SecurityUtils.getUserId(), metaObject); } }
實(shí)體類
@TableField(fill = FieldFill.INSERT) //插入時(shí) 自動(dòng)添加創(chuàng)建人 private Long createBy; @TableField(fill = FieldFill.INSERT) //插入時(shí) 自動(dòng)添加 創(chuàng)建時(shí)間 private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) //插入更新時(shí) 自動(dòng)添加 更新人 private Long updateBy; @TableField(fill = FieldFill.INSERT_UPDATE) //插入更新時(shí) 自動(dòng)添加 更新時(shí)間 private Date updateTime;
到此這篇關(guān)于mybatisplus實(shí)現(xiàn)自動(dòng)填充時(shí)間的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)mybatisplus 自動(dòng)填充時(shí)間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java concurrency之LockSupport_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了Java concurrency之LockSupport的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Java設(shè)計(jì)模式之簡單工廠 工廠方法 抽象工廠深度總結(jié)
設(shè)計(jì)模式(Design Pattern)是前輩們對代碼開發(fā)經(jīng)驗(yàn)的總結(jié),是解決特定問題的一系列套路。它不是語法規(guī)定,而是一套用來提高代碼可復(fù)用性、可維護(hù)性、可讀性、穩(wěn)健性以及安全性的解決方案2021-09-09Java?靜態(tài)代理與動(dòng)態(tài)代理解析
這篇文章主要介紹了Java?靜態(tài)代理與動(dòng)態(tài)代理解析,關(guān)于靜態(tài)代理與動(dòng)態(tài)代理,一直是比較困擾很多新人開發(fā),但實(shí)際我們開發(fā)中,小到寫的某個(gè)工具類,大到經(jīng)常使用的Retrofit?其內(nèi)部都使用了動(dòng)態(tài)代理,所以這篇文章從基礎(chǔ)到源碼解析,以便簡單理解靜態(tài)代理與Jdk中的動(dòng)態(tài)代理2022-02-02windows 部署JAVA環(huán)境安裝iDea的詳細(xì)步驟
這篇文章主要介紹了windows 部署JAVA環(huán)境安裝iDea的詳細(xì)步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Java IO流體系繼承結(jié)構(gòu)圖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java IO流體系繼承結(jié)構(gòu)圖,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05