MybatisPlus自動填充創(chuàng)建(更新)時間問題
MybatisPlus自動填充創(chuàng)建(更新)時間
在大多數(shù)情況下,我們在創(chuàng)建數(shù)據(jù)庫時都會加上創(chuàng)建、更新時間這些字段,為了保證數(shù)據(jù)的可追溯性,當(dāng)然肯定還是有操作日志記錄表用來做追溯記錄。
開發(fā)中每一次的創(chuàng)建更新都需要手動去設(shè)置這一次操作的時間,會有很多的代碼冗余。
`create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間', `create_user` bigint DEFAULT NULL COMMENT '創(chuàng)建人', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間', `update_user` bigint DEFAULT NULL COMMENT '更新人', `status` tinyint DEFAULT '1' COMMENT '狀態(tài)(備用)', `is_deleted` tinyint DEFAULT '0' COMMENT '邏輯刪除
這個時候,有沒有一種方法可以幫我們自動維護這些字段呢?
在這里的話,不得不提到MybatisPlus的功能強大了。MybatisPlus有一個擴展功能:自動填充。
此功能常見的應(yīng)用場景為,插入數(shù)據(jù)的時候自動添加創(chuàng)建時間、創(chuàng)建人、修改時間、修改人、刪除標(biāo)記。
通過實現(xiàn)MetaObjectHandler接口,重寫insertFill、updateFill方法,當(dāng)我們插入和修改數(shù)據(jù)的時候可以自動添加指定字段的值,這些不就是我們想要的效果嗎?
話不多說,上代碼!
一、實現(xiàn)MetaObjectHandler
@Component
public class MybatisHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
//屬性名
this.setFieldValByName("createTime", new Date(), metaObject);
//this.setFieldValByName("createUser", SecureUtil.getUserId(), metaObject);
//不維護create_user可以不使用這行代碼
}
@Override
public void updateFill(MetaObject metaObject) {
//屬性名
this.setFieldValByName("updateTime", new Date(), metaObject);
//this.setFieldValByName("updateUser", SecureUtil.getUserId(), metaObject);
}
}二、使用注解

/** * 進行新增或者更新操作時 * Mybatis自動進行維護時間 */ @TableField(fill= FieldFill.INSERT) private Long createUser; @TableField(fill=FieldFill.INSERT) private Date createTime; @TableField(fill=FieldFill.UPDATE) private Long updateUser; @TableField(fill=FieldFill.UPDATE) private Date updateTime;
這樣就可以做到自動維護更新、創(chuàng)建時間啦!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring中ResponseBodyAdvice的使用詳解
這篇文章主要介紹了Spring中ResponseBodyAdvice的使用,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10
idea插件之mybatis log plugin控制臺sql的問題
這篇文章主要介紹了idea插件之mybatis log plugin控制臺sql,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
Spring boot中filter類不能注入@Autowired變量問題
這篇文章主要介紹了Spring boot中filter類不能注入@Autowired變量問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
java動態(tài)規(guī)劃算法——硬幣找零問題實例分析
這篇文章主要介紹了java動態(tài)規(guī)劃算法——硬幣找零問題,結(jié)合實例形式分析了java動態(tài)規(guī)劃算法——硬幣找零問題相關(guān)原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-05-05

