Mybatisplus自動填充實現(xiàn)方式及代碼示例
數(shù)據(jù)庫表的創(chuàng)建時間、修改時間,這些個操作一遍都是自動化完成的,我們不希望手動更新。這時候自動填充便可以發(fā)揮作用了。
1、方式一
數(shù)據(jù)庫級別(注意:不建議此方式,因為工作中不允許你修改數(shù)據(jù)庫)
步驟
在表中新增字段create_time, update_time,給字段賦予默認(rèn)值,在需要更新的字段(update_time)選擇更新
在實體類增加對應(yīng)屬性
2、方式二
代碼級別,建議使用
步驟
在實體類需要自動填充的屬性上加注解
package com.yl.bean; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.Date; /** * 用戶實體類 */ @Data @NoArgsConstructor public class User implements Serializable { @TableId(type=IdType.AUTO) private Integer id; private String name; private Integer age; private String email; @TableField(fill = FieldFill.INSERT )//插入數(shù)據(jù)時更新該字段 private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE)//插入和修改時更新該字段 private Date updateTime; }
注意:數(shù)據(jù)庫要有對應(yīng)字段,不會自動給你生成字段
編寫處理器來處理自動填充注解
package com.yl.handler; 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.util.Date; /** * 自動填充處理器實現(xiàn)類 */ @Slf4j//配置日志輸出,也可以不配置 @Component public class MyMetaObjectHandler implements MetaObjectHandler { /** * 插入元對象字段填充(用于插入時對公共字段的填充) * * @param metaObject 元對象 */ @Override public void insertFill(MetaObject metaObject) { //日志輸出 log.info("start insert fill....."); //字段填充 this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); } /** * 更新元對象字段填充(用于更新時對公共字段的填充) * * @param metaObject 元對象 */ @Override public void updateFill(MetaObject metaObject) { //日志輸出 log.info("start update fill....."); //字段填充 this.setFieldValByName("updateTime",new Date(),metaObject); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Elasticsearch算分優(yōu)化方案之rescore_query示例詳解
這篇文章主要為大家介紹了Elasticsearch算分優(yōu)化方案之rescore_query示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08SpringBoot多數(shù)據(jù)源讀寫分離的自定義配置問題及解決方法
這篇文章主要介紹了SpringBoot多數(shù)據(jù)源讀寫分離的自定義配置,我們可以通過自定義配置數(shù)據(jù)庫配置類來解決這個問題,方式有很多,不同的業(yè)務(wù)采用的方式也不同,下面我簡單的介紹我們項目的使用的方法2022-06-06java圖像識別工具類(ImageRecognitionUtils)使用實例詳解
這篇文章主要介紹了如何在Java中使用OpenCV進(jìn)行圖像識別,包括圖像加載、預(yù)處理、分類、人臉檢測和特征提取等步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01IDEA 單元測試創(chuàng)建方法詳解(2020.03版本親測)
這篇文章主要介紹了IDEA 單元測試創(chuàng)建方法詳解(2020.03版本親測),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10