最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis-plus在新增或修改時(shí)如何自動(dòng)插入或修改某個(gè)字段值

 更新時(shí)間:2026年04月24日 09:51:44   作者:誰(shuí)家好人當(dāng)程序員啊  
文章講述了MyBatis-Plus中MetaObjectHandler接口的使用方法,通過(guò)在實(shí)體類(lèi)中添加@TableField注解并實(shí)現(xiàn)MetaObjectHandler接口的insertFill和updateFill方法,為新增和更新操作時(shí)自動(dòng)填充公共字段如createTime、updateTime等的默認(rèn)值

一 效果

在新增User表的數(shù)據(jù)時(shí),createTime為null

使用mybatis-plus自帶的save方法新增后,在數(shù)據(jù)庫(kù)中有自動(dòng)插入的當(dāng)前時(shí)間的值

二 實(shí)現(xiàn)原理

MetaObjectHandler:元數(shù)據(jù)對(duì)象處理器

說(shuō)明:

MetaObjectHandler接口是mybatisPlus為我們提供的的一個(gè)擴(kuò)展接口,我們可以利用這個(gè)接口在我們插入或者更新數(shù)據(jù)的時(shí)候,為一些字段指定默認(rèn)值。

使用場(chǎng)景:

公共字段填充,如updateTime、createTime、createUser、updateUser等公共字段的填充。

三 使用步驟

在實(shí)體類(lèi)的公共字段上添加@TableField注解

  • @TableField(fill = FieldFill.INSERT):表示此字段只在插入/新增操作時(shí)更新數(shù)據(jù);
  • @TableField(fill = FieldFill.INSERT_UPDATE):表示此字段在新增和修改操作時(shí)都更新數(shù)據(jù);
  • @TableField(fill = FieldFill.UPDATE):表示此字段只在修改操作時(shí)更新數(shù)據(jù);

如下面代碼中,createTime,updateTime,createUser都會(huì)在新增時(shí)更新數(shù)據(jù),updateTime還會(huì)在修改時(shí)更新數(shù)據(jù)

@TableName(value = "article")
@Data
public class Article implements Serializable {
    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 圖片地址
     */
    private String pictureUrl;
    /**
     * 標(biāo)題
     */
    private String title;
    /**
     * 創(chuàng)建時(shí)間
     */
    @TableField(fill = FieldFill.INSERT)
    private String createTime;
    /**
     * 修改時(shí)間
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateTime;

    /**
     * 創(chuàng)建人
     */
    @TableField(fill = FieldFill.INSERT)
    private String createUser;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}

創(chuàng)建配置類(lèi)實(shí)現(xiàn)MetaObjectHandler接口

實(shí)現(xiàn)MetaObjectHandler接口,重寫(xiě)insertFill、updateFill方法

使用接口中的setFieldValByName方法,找到我們之前的幾個(gè)字段,并給字段賦值

不要忘記@Component 注解

如下代碼:

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()), metaObject);
        this.setFieldValByName("updateTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()), metaObject);    
        this.setFieldValByName("createUser", currrentUser.getNickname(), metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()), metaObject);

    }
}

總結(jié)

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

相關(guān)文章

  • 如何使用Resttemplate和Ribbon調(diào)用Eureka實(shí)現(xiàn)負(fù)載均衡

    如何使用Resttemplate和Ribbon調(diào)用Eureka實(shí)現(xiàn)負(fù)載均衡

    這篇文章主要介紹了如何使用Resttemplate和Ribbon調(diào)用Eureka實(shí)現(xiàn)負(fù)載均衡,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 在Elasticsearch中添加字段的詳細(xì)步驟

    在Elasticsearch中添加字段的詳細(xì)步驟

    在ES中,增加字段相對(duì)比較容易,因?yàn)镋S支持動(dòng)態(tài)映射(Dynamic Mapping),這篇文章主要給大家介紹了關(guān)于在Elasticsearch中添加字段的詳細(xì)步驟,文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下
    2024-07-07
  • 關(guān)于SpringBoot+Mybatis報(bào)MapperScan.factoryBean()問(wèn)題

    關(guān)于SpringBoot+Mybatis報(bào)MapperScan.factoryBean()問(wèn)題

    解決SpringBoot+Mybatis中的MapperScan.factoryBean()問(wèn)題,讓你的項(xiàng)目運(yùn)行更順暢!本指南將帶你一步步解決這個(gè)問(wèn)題,讓你的開(kāi)發(fā)過(guò)程更加高效,不要錯(cuò)過(guò)這個(gè)實(shí)用指南,快來(lái)一探究竟吧!
    2024-02-02
  • 剖析SpringCloud Feign中所隱藏的坑

    剖析SpringCloud Feign中所隱藏的坑

    這篇文章主要為大家介紹了剖析SpringCloud Feign中所隱藏的坑示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • FeignClient支持運(yùn)行時(shí)動(dòng)態(tài)指定URL方式

    FeignClient支持運(yùn)行時(shí)動(dòng)態(tài)指定URL方式

    在實(shí)際開(kāi)發(fā)中,我們經(jīng)常通過(guò)FeignClient接口調(diào)用三方API,當(dāng)面對(duì)不同的環(huán)境對(duì)應(yīng)不同的地址時(shí),可以通過(guò)配置文件和占位符來(lái)切換,但在同一個(gè)環(huán)境中需要調(diào)用不同地址的相同接口時(shí),這種方法就失效了,此時(shí),可以通過(guò)實(shí)現(xiàn)RequestInterceptor接口來(lái)動(dòng)態(tài)切換地址
    2024-11-11
  • Java使用hutool實(shí)現(xiàn)文件大小的友好輸出

    Java使用hutool實(shí)現(xiàn)文件大小的友好輸出

    這篇文章主要為大家詳細(xì)介紹了Java如何使用hutool實(shí)現(xiàn)文件大小的友好輸出,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下
    2023-11-11
  • SpringRetry重試框架的具體使用

    SpringRetry重試框架的具體使用

    在項(xiàng)目開(kāi)發(fā)中,經(jīng)常會(huì)遇到需要重試的地方。本文主要介紹了SpringRetry重試框架的具體使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java HtmlParse提取標(biāo)簽中的值操作

    Java HtmlParse提取標(biāo)簽中的值操作

    這篇文章主要介紹了Java HtmlParse提取標(biāo)簽中的值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • java對(duì)象轉(zhuǎn)化成String類(lèi)型的四種方法小結(jié)

    java對(duì)象轉(zhuǎn)化成String類(lèi)型的四種方法小結(jié)

    在java項(xiàng)目的實(shí)際開(kāi)發(fā)和應(yīng)用中,常常需要用到將對(duì)象轉(zhuǎn)為String這一基本功能。本文就詳細(xì)的介紹幾種方法,感興趣的可以了解一下
    2021-08-08
  • SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配

    SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配

    本文主要介紹了SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論

平塘县| 阿瓦提县| 会昌县| 景泰县| 白银市| 民和| 东丰县| 马鞍山市| 绍兴市| 卫辉市| 赣州市| 广宗县| 江城| 石阡县| 图片| 五家渠市| 沁阳市| 合水县| 谢通门县| 淮阳县| 崇州市| 安庆市| 闽侯县| 任丘市| 乐山市| 康马县| 离岛区| 曲麻莱县| 延津县| 资源县| 兴城市| 永年县| 启东市| 商洛市| 日照市| 阿克苏市| 朝阳县| 淳安县| 隆林| 江安县| 句容市|