激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 在MyBatisPlus中使用@TableField完成字段自動填充的操作

在MyBatisPlus中使用@TableField完成字段自動填充的操作

2021-08-03 10:11BADAO_LIUMANG_QIZHI Java教程

這篇文章主要介紹了在MyBatisPlus中使用@TableField完成字段自動填充的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

場景

官方文檔:

字段注解 @tablefield

?
1
com.baomidou.mybatisplus.annotations.tablefield
描述
value 字段值(駝峰命名方式,該值可無)
update 預處理 set 字段自定義注入
condition 預處理 where 實體條件自定義運算規則
el 詳看注釋說明
exist 是否為數據庫表字段( 默認 true 存在,false 不存在 )
strategy 字段驗證 ( 默認 非 null 判斷,查看 com.baomidou.mybatisplus.enums.fieldstrategy )
fill 字段填充標記 ( fieldfill, 配合自動填充使用 )

字段填充策略 fieldfill

描述
default 默認不處理
insert 插入填充字段
update 更新填充字段
insert_update 插入和更新填充字段

實現

實體類中有如下屬性,通過上面的自動填充屬性,我們可以實現

在進行插入操作時對

添加了注解@tablefield(fill = fieldfill.insert)

的字段進行自動填充。

對添加了注解@tablefield(fill = fieldfill.insert_update)

的字段在進行插入和更新時進行自動填充。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
  * 創建人
  */
 @tablefield(fill = fieldfill.insert)
 private long creatorid;
 
 /**
  * 創建時間
  */
 @tablefield(fill = fieldfill.insert)
 private date gmtcreat;
 
 /**
  * 修改人
  */
 @tablefield(fill = fieldfill.insert_update)
 private long modifierid;
 
 /**
  * 修改時間
  */
 @tablefield(fill = fieldfill.insert_update)
 private date gmtmodified;
 
 /**
  * 是否可用
  */
 @tablefield(fill = fieldfill.insert)
 private boolean availableflag;

這樣我們在具體業務中對實體類進行賦值就可以不用對這些公共字段進行賦值,在執行插入或者更新時就能自動賦值并插入數據庫。

那么要自動賦的值在哪里配置?

在項目的config包下新建自動填充處理類使其實現接口metaobjecthandler

并重寫其方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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;
 
/**
 * 自動填充處理類
 * @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);
  }
}

其中方法參數中第一個是前面自動填充所對應的字段,第二個是要自動填充的值。

補充:mybatis-plus里 @tablefield注解 自動賦值功能的配置類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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;
//完成自動填充功能
@component //將該對象交給spring容器管理
public class mymetaobjecthandler implements metaobjecthandler {
  /**
   * 在pojo中添加了 新增/更新的注解,但是必須在數據庫的字段中完成賦值的操作.
   * 所以.必須明確,新增/更新時操作的是哪個字段,及值是多少
   * * * @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注解完成自動填充賦值使用 案例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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個任務,2個日期,實現序列化
@data
@accessors(chain=true)
public class basepojo implements serializable{
 @tablefield(fill = fieldfill.insert) //新增有效
 private date created;
 @tablefield(fill = fieldfill.insert_update) //新增和更新有效
 private date updated;
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/89450006

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费a级毛片大学生免费观看 | 暖暖免费观看高清完整版电影 | 国产亚洲精品综合一区91 | 黄色成人在线播放 | 久久精品中文字幕一区 | 久草手机在线视频 | 91精品国产综合久久婷婷香 | 欧美一区永久视频免费观看 | 国产人成精品一区二区三 | 午夜伦情电午夜伦情电影 | 日韩精品网站在线观看 | 国产精品免费一区二区三区都可以 | 久久老司机 | 91婷婷射 | 久久久久久久九九九九 | 俄罗斯论理片 | 成人毛片100部 | 欧美大逼网| 激情免费视频 | 末成年女av片一区二区 | 欧美不卡 | 欧美一级xxx | 国产精品性夜天天视频 | 久成人| 视频一区二区久久 | 国产免费一区二区三区在线能观看 | 免费一级毛片在线播放视频 | 黄色网电影 | 欧美日本免费一区二区三区 | 国产精品免费观看视频 | 久久精品片 | 成人国产在线看 | 色婷婷综合久久久中字幕精品久久 | 红杏亚洲影院一区二区三区 | 精品国产乱码久久久久久久久 | 美国一级免费视频 | 国产亚洲精品久久久久久网站 | 国产伦久视频免费观看视频 | 久久久成人999亚洲区美女 | 免费淫视频| 国产啊v在线观看 |