国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色av大片在线观看 | 日韩午夜在线 | 欧美日韩在线一区二区三区 | 亚洲一级毛片 | 精品毛片 | 欧美自拍一区 | 久久久www | 国产三区在线视频 | 亚洲视频播放 | 国产一区二区三区在线免费观看 | 自拍偷拍 亚洲 | 色淫av | 国产精品久久久久久婷婷天堂 | 欧美一级特黄aaaaaaa在线观看 | 国产精品久久精品 | 亚洲精品综合 | 精品国产一区二区三区日日嗨 | 亚洲精品国产乱码在线看蜜月 | 国产又色又爽又黄又免费 | 狠狠撸在线| 91久久久久久久久 | 国产成人一区二区 | 国产在线精品一区 | 男女啪啪无遮挡 | 人人九九精 | 欧美日韩第一区 | 久久久久久久久久久精 | 免费av片在线 | 色综合久久88色综合天天 | 九色在线| 中文字幕不卡 | 成人在线免费看 | 成年网站在线观看 | 国产精品初高中精品久久 | 午夜小电影 | 亚洲字幕成人中文在线观看 | 99在线免费观看 | 黄色国产 | 国产日韩一区二区 | 久久中国 | 免费看国产一级片 |