欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MybatisPlus自動填充創(chuàng)建(更新)時(shí)間問題

 更新時(shí)間:2024年09月22日 09:55:37   作者:Java王小怪  
在開發(fā)數(shù)據(jù)庫相關(guān)應(yīng)用時(shí),手動設(shè)置創(chuàng)建和更新時(shí)間會導(dǎo)致代碼冗余,MybatisPlus提供了自動填充功能,通過實(shí)現(xiàn)MetaObjectHandler接口并重寫insertFill、updateFill方法,可以自動維護(hù)創(chuàng)建時(shí)間、更新時(shí)間等字段,極大簡化了代碼,這不僅提高了開發(fā)效率,也保證了數(shù)據(jù)的可追溯性

MybatisPlus自動填充創(chuàng)建(更新)時(shí)間

在大多數(shù)情況下,我們在創(chuàng)建數(shù)據(jù)庫時(shí)都會加上創(chuàng)建、更新時(shí)間這些字段,為了保證數(shù)據(jù)的可追溯性,當(dāng)然肯定還是有操作日志記錄表用來做追溯記錄。

開發(fā)中每一次的創(chuàng)建更新都需要手動去設(shè)置這一次操作的時(shí)間,會有很多的代碼冗余。

  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',
  `create_user` bigint DEFAULT NULL COMMENT '創(chuàng)建人',
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時(shí)間',
  `update_user` bigint DEFAULT NULL COMMENT '更新人',
  `status` tinyint DEFAULT '1' COMMENT '狀態(tài)(備用)',
  `is_deleted` tinyint DEFAULT '0' COMMENT '邏輯刪除

這個時(shí)候,有沒有一種方法可以幫我們自動維護(hù)這些字段呢?

在這里的話,不得不提到MybatisPlus的功能強(qiáng)大了。MybatisPlus有一個擴(kuò)展功能:自動填充。

此功能常見的應(yīng)用場景為,插入數(shù)據(jù)的時(shí)候自動添加創(chuàng)建時(shí)間、創(chuàng)建人、修改時(shí)間、修改人、刪除標(biāo)記。

通過實(shí)現(xiàn)MetaObjectHandler接口,重寫insertFillupdateFill方法,當(dāng)我們插入和修改數(shù)據(jù)的時(shí)候可以自動添加指定字段的值,這些不就是我們想要的效果嗎?

話不多說,上代碼!

一、實(shí)現(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);
        //不維護(hù)create_user可以不使用這行代碼
	}

	@Override
	public void updateFill(MetaObject metaObject) {
		//屬性名
		this.setFieldValByName("updateTime", new Date(), metaObject);
		//this.setFieldValByName("updateUser", SecureUtil.getUserId(), metaObject);
	}
}

二、使用注解

    /**
	 * 進(jìn)行新增或者更新操作時(shí)
	 * Mybatis自動進(jìn)行維護(hù)時(shí)間
	 */
	@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;

這樣就可以做到自動維護(hù)更新、創(chuàng)建時(shí)間啦!

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring AOP的入門教程

    Spring AOP的入門教程

    Spring AOP是Spring框架的一個模塊,本文主要介紹了Spring AOP的入門教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Java基礎(chǔ)題新手練習(xí)(二)

    Java基礎(chǔ)題新手練習(xí)(二)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Java虛擬機(jī)性能優(yōu)化技巧和最佳實(shí)踐分享

    Java虛擬機(jī)性能優(yōu)化技巧和最佳實(shí)踐分享

    Java虛擬機(jī)(JVM)是Java平臺的核心組件,負(fù)責(zé)將Java字節(jié)碼轉(zhuǎn)換為機(jī)器碼并執(zhí)行,JVM性能直接影響Java應(yīng)用的響應(yīng)速度、吞吐量和資源利用率,本文將深入探討JVM性能優(yōu)化的關(guān)鍵技術(shù)和最佳實(shí)踐,幫助開發(fā)者和運(yùn)維人員提升Java應(yīng)用性能,需要的朋友可以參考下
    2025-05-05
  • SpringBoot整合Spring?Security過濾器鏈加載執(zhí)行流程源碼分析(最新推薦)

    SpringBoot整合Spring?Security過濾器鏈加載執(zhí)行流程源碼分析(最新推薦)

    Spring?Boot?對于?Spring?Security?提供了自動化配置方案,可以使用更少的配置來使用?Spring?Security,這篇文章主要介紹了SpringBoot整合Spring?Security過濾器鏈加載執(zhí)行流程源碼分析,需要的朋友可以參考下
    2023-02-02
  • Java實(shí)現(xiàn)Twitter的分布式自增ID算法snowflake

    Java實(shí)現(xiàn)Twitter的分布式自增ID算法snowflake

    這篇文章主要介紹了Java實(shí)現(xiàn)Twitter的分布式自增ID算法snowflake,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • springboot集成nacos的配置方法

    springboot集成nacos的配置方法

    這篇文章主要介紹了springboot集成nacos的配置方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • idea導(dǎo)入module的正確實(shí)現(xiàn)方法

    idea導(dǎo)入module的正確實(shí)現(xiàn)方法

    文章介紹了在IntelliJ IDEA中正確導(dǎo)入Spring Cloud項(xiàng)目module的方法:通過File→New→Module from Existing Sources選擇路徑并點(diǎn)擊OK,隨后右擊pom.xml添加為Maven項(xiàng)目,最后運(yùn)行Maven Install生命周期完成編譯,強(qiáng)調(diào)操作步驟的重要性,避免因失誤導(dǎo)致問題
    2025-07-07
  • Java?定時(shí)任務(wù)技術(shù)趨勢詳情

    Java?定時(shí)任務(wù)技術(shù)趨勢詳情

    這篇文章主要介紹了Java?定時(shí)任務(wù)技術(shù)趨勢詳情,定時(shí)任務(wù)是每個業(yè)務(wù)常見的需求,比如每分鐘掃描超時(shí)支付的訂單,每小時(shí)清理一次數(shù)據(jù)庫歷史數(shù)據(jù),每天統(tǒng)計(jì)前一天的數(shù)據(jù)并生成報(bào)表等,下文更多相關(guān)資料,需要的小伙伴可以參考一下
    2022-05-05
  • java能寫爬蟲程序嗎

    java能寫爬蟲程序嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于java是否能寫爬蟲程序的一篇文章,對此有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Spring Cache的基本使用與實(shí)現(xiàn)原理詳解

    Spring Cache的基本使用與實(shí)現(xiàn)原理詳解

    緩存是實(shí)際工作中非經(jīng)常常使用的一種提高性能的方法, 我們會在很多場景下來使用緩存。下面這篇文章主要給大家介紹了關(guān)于Spring Cache的基本使用與實(shí)現(xiàn)原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-05-05

最新評論