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

Mybatis-plus配置之日期時間自動填充實踐

 更新時間:2025年08月11日 08:49:18   作者:java_學(xué)習(xí)愛好者  
本文介紹如何使用MyBatis-Plus的MetaObjectHandler接口實現(xiàn)新增和更新時間的自動填充,通過繼承抽象類、添加注解及處理版本兼容性,簡化開發(fā)流程并減少手動操作

一、前言

在業(yè)務(wù)開發(fā)時——每次數(shù)據(jù)更新或新增時都需要特意得去修改時間,總是進行這種繁瑣的操作,給很多后端開發(fā)人員造成了很大得困擾。

這一期我們就幫大家解決掉這個問題,MyBatis-Plus 提供了非常便捷的方式來實現(xiàn)這一功能,通過使用其內(nèi)置的 MetaObjectHandler 接口,實現(xiàn)新增日期和更改日期的快速填充,以此解放廣大碼農(nóng)朋友的雙手。

二、導(dǎo)入依賴

 <!-- 內(nèi)置mybatis-plus插件依賴 -->
    <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.4.2</version>
     </dependency>
     <!-- MySql -->
      <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>8.0.11</version>
       </dependency>

三、構(gòu)造抽象類

后續(xù)所有的實體類,都可以繼承這個基礎(chǔ)的實體類,以提高代碼的復(fù)用性

在需要自動創(chuàng)建更新的屬性上,加上@TableField注解

public abstract class BasePojo {
    //文件創(chuàng)建,自動填充。需要實現(xiàn)MetaObjectHandle接口,進行處理
    @TableField(fill = FieldFill.INSERT)
    private Date created;
    //文件更新,自動填充
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updated;
}

四、實現(xiàn)MetaObjectHandle接口

package com.tanhua.sso.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        // 使用嚴(yán)格模式插入填充,如果字段為null則進行填充
        this.strictInsertFill(metaObject, "created", Date.class, new Date()); // 創(chuàng)建時間
        this.strictInsertFill(metaObject, "updated", Date.class, new Date()); // 更新時間
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        // 使用嚴(yán)格模式更新填充,總是設(shè)置更新時間
        this.strictUpdateFill(metaObject, "updated", Date.class, new Date());
    }
}

五、版本兼容性問題

若業(yè)務(wù)中mybatis-plus版本較低,可能不含strict方法,可以采用以下寫法

package com.tanhua.sso.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        //字段為空,自動填充字段
        Object created = getFieldValByName("created", metaObject);
        if(null==created){
            setFieldValByName("created",new Date(),metaObject);
        }
        Object updated = getFieldValByName("updated", metaObject);
        if(null==updated){
            setFieldValByName("updated",new Date(),metaObject);
        }
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        //更新數(shù)據(jù)時,更新字段
        setFieldValByName("updated",new Date(),metaObject);
    }
}

六、總結(jié)

至此,自動填充功能,圓滿實現(xiàn)。

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

相關(guān)文章

  • Java多線程實現(xiàn)Callable接口

    Java多線程實現(xiàn)Callable接口

    本文給大家分享的是使用Java多線程來實現(xiàn)callable接口的方法,以及使用方法,另外還有一個網(wǎng)友的實例,希望能夠?qū)Υ蠹艺莆認(rèn)ava多線程有所幫助。
    2016-06-06
  • 詳解Java的Proxy動態(tài)代理機制

    詳解Java的Proxy動態(tài)代理機制

    Java有兩種代理方式,一種是靜態(tài)代理,另一種是動態(tài)代理。對于靜態(tài)代理,其實就是通過依賴注入,對對象進行封裝,不讓外部知道實現(xiàn)的細(xì)節(jié)。很多 API 就是通過這種形式來封裝的
    2021-06-06
  • Java及Android中常用鏈?zhǔn)秸{(diào)用寫法簡單示例

    Java及Android中常用鏈?zhǔn)秸{(diào)用寫法簡單示例

    這篇文章主要介紹了Java及Android中常用鏈?zhǔn)秸{(diào)用寫法,結(jié)合實例形式分析了java編程中的鏈?zhǔn)秸{(diào)用概念、簡單使用方法及相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • spring mvc實現(xiàn)登錄賬號單瀏覽器登錄

    spring mvc實現(xiàn)登錄賬號單瀏覽器登錄

    這篇文章主要為大家詳細(xì)介紹了spring mvc實現(xiàn)登錄賬號單瀏覽器登錄,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • springboot中validator數(shù)據(jù)校驗功能的實現(xiàn)

    springboot中validator數(shù)據(jù)校驗功能的實現(xiàn)

    這篇文章主要介紹了springboot中validator數(shù)據(jù)校驗功能,校驗分為普通校驗和分組校驗,每種校驗方式通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • Spring Boot如何移除內(nèi)嵌Tomcat,使用非web方式啟動

    Spring Boot如何移除內(nèi)嵌Tomcat,使用非web方式啟動

    這篇文章主要介紹了Spring Boot如何移除內(nèi)嵌Tomcat,使用非web方式啟動,幫助大家更好的理解和學(xué)習(xí)使用spring boot框架,感興趣的朋友可以了解下
    2021-02-02
  • MyBatis的各種查詢功能結(jié)果接收類型的選擇(推薦)

    MyBatis的各種查詢功能結(jié)果接收類型的選擇(推薦)

    文章介紹了MyBatis中查詢結(jié)果的不同接收方式,包括單條數(shù)據(jù)和多條數(shù)據(jù)的處理方法,以及MyBatis的默認(rèn)類型別名,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 最新評論