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

在MyBatisPlus中使用@TableField完成字段自動(dòng)填充的操作

 更新時(shí)間:2021年02月03日 11:31:14   作者:BADAO_LIUMANG_QIZHI  
這篇文章主要介紹了在MyBatisPlus中使用@TableField完成字段自動(dòng)填充的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

場景

官方文檔:

字段注解 @TableField

com.baomidou.mybatisplus.annotations.TableField
描述
value 字段值(駝峰命名方式,該值可無)
update 預(yù)處理 set 字段自定義注入
condition 預(yù)處理 WHERE 實(shí)體條件自定義運(yùn)算規(guī)則
el 詳看注釋說明
exist 是否為數(shù)據(jù)庫表字段( 默認(rèn) true 存在,false 不存在 )
strategy 字段驗(yàn)證 ( 默認(rèn) 非 null 判斷,查看 com.baomidou.mybatisplus.enums.FieldStrategy )
fill 字段填充標(biāo)記 ( FieldFill, 配合自動(dòng)填充使用 )

字段填充策略 FieldFill

描述
DEFAULT 默認(rèn)不處理
INSERT 插入填充字段
UPDATE 更新填充字段
INSERT_UPDATE 插入和更新填充字段

實(shí)現(xiàn)

實(shí)體類中有如下屬性,通過上面的自動(dòng)填充屬性,我們可以實(shí)現(xiàn)

在進(jìn)行插入操作時(shí)對

添加了注解@TableField(fill = FieldFill.INSERT)

的字段進(jìn)行自動(dòng)填充。

對添加了注解@TableField(fill = FieldFill.INSERT_UPDATE)

的字段在進(jìn)行插入和更新時(shí)進(jìn)行自動(dòng)填充。

 /**
   * 創(chuàng)建人
   */
  @TableField(fill = FieldFill.INSERT)
  private Long creatorId;
 
  /**
   * 創(chuàng)建時(shí)間
   */
  @TableField(fill = FieldFill.INSERT)
  private Date gmtCreat;
 
  /**
   * 修改人
   */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Long modifierId;
 
  /**
   * 修改時(shí)間
   */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Date gmtModified;
 
  /**
   * 是否可用
   */
  @TableField(fill = FieldFill.INSERT)
  private Boolean availableFlag;

這樣我們在具體業(yè)務(wù)中對實(shí)體類進(jìn)行賦值就可以不用對這些公共字段進(jìn)行賦值,在執(zhí)行插入或者更新時(shí)就能自動(dòng)賦值并插入數(shù)據(jù)庫。

那么要自動(dòng)賦的值在哪里配置?

在項(xiàng)目的config包下新建自動(dòng)填充處理類使其實(shí)現(xiàn)接口MetaObjectHandler

并重寫其方法:

package com.ws.api.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
 
/**
 * 自動(dòng)填充處理類
 * @author badao
 * @version 1.0
 * @see
 **/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
  @Override
  public void insertFill(MetaObject metaObject) {
    this.setFieldValByName("modifierId", new Long(111), metaObject);
    this.setFieldValByName("gmtModified", new Date(), metaObject);
    this.setFieldValByName("creatorId", new Long(111), metaObject);
    this.setFieldValByName("gmtCreat",new Date(), metaObject);
    this.setFieldValByName("availableFlag",true, metaObject);  
  }
 
  @Override
  public void updateFill(MetaObject metaObject) {
    this.setFieldValByName("modifierId", new Long(111), metaObject);
    this.setFieldValByName("gmtModified", new Date(), metaObject);
  }
}

其中方法參數(shù)中第一個(gè)是前面自動(dòng)填充所對應(yīng)的字段,第二個(gè)是要自動(dòng)填充的值。

補(bǔ)充:Mybatis-Plus里 @TableField注解 自動(dòng)賦值功能的配置類

package com.jt.auto;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
//完成自動(dòng)填充功能
@Component //將該對象交給spring容器管理
public class MyMetaObjectHandler implements MetaObjectHandler {
  /**
   * 在POJO中添加了 新增/更新的注解,但是必須在數(shù)據(jù)庫的字段中完成賦值的操作.
   * 所以.必須明確,新增/更新時(shí)操作的是哪個(gè)字段,及值是多少
   * * * @param metaObject
   */
  @Override
  public void insertFill(MetaObject metaObject) {
    this.setInsertFieldValByName("created", new Date(), metaObject);
    this.setInsertFieldValByName("updated", new Date(), metaObject);
  }
  @Override
  public void updateFill(MetaObject metaObject) {
    this.setUpdateFieldValByName("updated", new Date(), metaObject);
  }
}

@TableField注解完成自動(dòng)填充賦值使用 案例:

package com.jt.pojo;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.experimental.Accessors;
//pojo基類,完成2個(gè)任務(wù),2個(gè)日期,實(shí)現(xiàn)序列化
@Data
@Accessors(chain=true)
public class BasePojo implements Serializable{
 @TableField(fill = FieldFill.INSERT) //新增有效
 private Date created;
 @TableField(fill = FieldFill.INSERT_UPDATE) //新增和更新有效
 private Date updated;
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • SpringBoot JPA實(shí)現(xiàn)查詢多值

    SpringBoot JPA實(shí)現(xiàn)查詢多值

    這篇文章主要為大家詳細(xì)介紹了SpringBoot JPA實(shí)現(xiàn)查詢多值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Java集合之HashMap/hashTable詳解

    Java集合之HashMap/hashTable詳解

    這篇文章主要介紹了Java集合之HashMap/hashTable詳解,Map是映射鍵值的對象,map不能包含重復(fù)鍵:每個(gè)鍵最多只能映射一個(gè)值,它模擬了數(shù)學(xué)函數(shù)的抽象,需要的朋友可以參考下
    2023-09-09
  • Java繼承的問題引導(dǎo)和測試代碼

    Java繼承的問題引導(dǎo)和測試代碼

    這篇文章主要介紹了Java繼承的問題引導(dǎo)和測試代碼,涉及繼承的概念,合成的語法等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2021-08-08
  • Java使用Redisson分布式鎖實(shí)現(xiàn)原理

    Java使用Redisson分布式鎖實(shí)現(xiàn)原理

    Redisson分布式鎖 之前的基于注解的鎖有一種鎖是基本redis的分布式鎖,這篇文章主要介紹了Java使用Redisson分布式鎖實(shí)現(xiàn)原理,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • 三道java新手入門面試題,通往自由的道路--JVM

    三道java新手入門面試題,通往自由的道路--JVM

    這篇文章主要為大家分享了最有價(jià)值的3道JVM面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,對hashCode方法的設(shè)計(jì)、垃圾收集的堆和代進(jìn)行剖析,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 網(wǎng)關(guān)Spring Cloud Gateway HTTP超時(shí)配置問題

    網(wǎng)關(guān)Spring Cloud Gateway HTTP超時(shí)配置問題

    這篇文章主要介紹了網(wǎng)關(guān)Spring Cloud Gateway HTTP超時(shí)配置問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringMVC按Ctrl上傳多個(gè)文件的方法

    SpringMVC按Ctrl上傳多個(gè)文件的方法

    這篇文章主要為大家詳細(xì)介紹了SpringMVC按Ctrl上傳多個(gè)文件的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • MyBatis的動(dòng)態(tài)攔截sql并修改

    MyBatis的動(dòng)態(tài)攔截sql并修改

    因工作需求,需要根據(jù)用戶的數(shù)據(jù)權(quán)限,來查詢并展示相應(yīng)的數(shù)據(jù),那么就需要?jiǎng)討B(tài)攔截sql,本文就來介紹了MyBatis的動(dòng)態(tài)攔截sql并修改,感興趣的可以了解一下
    2023-11-11
  • 序列化版本號serialVersionUID的作用_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    序列化版本號serialVersionUID的作用_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java序列化是將一個(gè)對象編碼成一個(gè)字節(jié)流,反序列化將字節(jié)流編碼轉(zhuǎn)換成一個(gè)對象,這篇文章主要介紹了序列化版本號serialVersionUID的作用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • java遞歸菜單樹轉(zhuǎn)換成pojo對象

    java遞歸菜單樹轉(zhuǎn)換成pojo對象

    這篇文章介紹了java遞歸菜單樹轉(zhuǎn)換成pojo對象的具體實(shí)現(xiàn),有需要的朋友可以參考一下
    2013-08-08

最新評論

鹿邑县| 鄂州市| 宜都市| 丰都县| 稻城县| 叙永县| 平阴县| 临沧市| 淮阳县| 嘉义县| 甘谷县| 文成县| 赤峰市| 常山县| 陈巴尔虎旗| 黎平县| 柘城县| 鄯善县| 长兴县| 东山县| 陕西省| 阳曲县| 揭西县| 涿州市| 富锦市| 郓城县| 肇源县| 彭山县| 富源县| 兴义市| 平乡县| 开封县| 门源| 甘孜| 平湖市| 察哈| 华阴市| 临沂市| 勃利县| 高州市| 汝阳县|