91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Mybatis-Plus怎么對字段進行自動填充

發布時間:2020-12-19 14:01:17 來源:億速云 閱讀:228 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關利用Mybatis-Plus怎么對字段進行自動填充,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在阿里開發手冊的建表規約中有說明,數據庫表中應該都要有create_time、update_time字段;那么在開發中,對于這些共有字段的處理應該要進行統一,這樣就可以簡化我們的開發過程。那么本文就對Mybatis-Plus中的字段自動填充進行記錄。

場景介紹

在項目的數據表設計中,每張表都有create_id、create_time、update_id、update_time這四個字段,那么在Java應用中,針對新增和修改操作要對這四個字段進行相應的更改:

  • create_id、update_id要自動填充為當前登錄的用戶ID

  • create_time、update_time要自動填充為當前時間

下面說說代碼實現:

自動填充處理器

需要實現Mybatis-Plus中的MetaObjectHandler接口

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import hw.topevery.basis.runtime.UserRuntime;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.Objects;

/**
 * 更新相關字段處理器
 *
 * @author whw
 * @date 2020/1/3 16:41
 */
@Component
public class UpdateRelatedFieldsMetaHandler implements MetaObjectHandler {

  /**
   * 新增操作
   *
   * @param metaObject
   */
  @Override
  public void insertFill(MetaObject metaObject) {
    this.strictInsertFill(metaObject, "createId", String.class, getCurrentUserId());
    this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
    this.strictInsertFill(metaObject, "updateId", String.class, getCurrentUserId());
    this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
  }

  /**
   * 更新操作
   *
   * @param metaObject
   */
  @Override
  public void updateFill(MetaObject metaObject) {
    this.strictUpdateFill(metaObject, "updateId", String.class, getCurrentUserId());
    this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
  }

  /**
   * 獲取當前登錄用戶ID
   *
   * @return
   */
  private String getCurrentUserId() {
    return "當前登錄用戶ID";
  }
}

Mybatis-Plus配置類

需要將處理器注入進Spring容器才會生效

import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import hw.topevery.kunming.wapi.handler.UpdateRelatedFieldsMetaHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Mybatis-Plus配置類
 *
 * @author whw
 * @date 2020/1/3 16:41
 */
@Configuration
public class MybatisPlusConfig {

  @Bean
  public GlobalConfig globalConfig() {
    GlobalConfig globalConfig = new GlobalConfig();
    globalConfig.setMetaObjectHandler(new UpdateRelatedFieldsMetaHandler());
    return globalConfig;
  }
}

配置實體類中相關字段的自動填充策略

在@TableField注解中設置fill屬性

字段填充策略FieldFill說明

描述
DEFAULT默認不處理
INSERT插入填充字段
UPDATE更新填充字段
INSERT_UPDATE插入和更新填充字段
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 基礎實體類
 *
 * @author whw
 * @date 2020/1/3 17:37
 */
@Data
public class BaseEntity implements Serializable {

  private static final long serialVersionUID = 1L;

  @ApiModelProperty(value = "創建用戶ID")
  @TableField(value = "c_create_id", fill = FieldFill.INSERT)
  private String createId;

  @ApiModelProperty(value = "創建時間")
  @TableField(value = "c_create_time", fill = FieldFill.INSERT)
  private LocalDateTime createTime;

  @ApiModelProperty(value = "更新用戶ID")
  @TableField(value = "c_update_id", fill = FieldFill.INSERT_UPDATE)
  private String updateId;

  @ApiModelProperty(value = "更新時間")
  @TableField(value = "c_update_time", fill = FieldFill.INSERT_UPDATE)
  private LocalDateTime updateTime;
}

我這邊是在實體中抽取了一個父類出來,當然也可以直接在實體類的對應字段上添加注解。

上述就是小編為大家分享的利用Mybatis-Plus怎么對字段進行自動填充了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临朐县| 深州市| 大田县| 碌曲县| 武威市| 黑水县| 安丘市| 休宁县| 凉山| 东港市| 天全县| 长治县| 安西县| 铅山县| 蓝田县| 斗六市| 庆安县| 阿尔山市| 滨海县| 凤台县| 太仓市| 平山县| 台南市| 克拉玛依市| 丰原市| 和平县| 宜丰县| 阳城县| 安宁市| 松原市| 天柱县| 漳州市| 大理市| 汽车| 新乡县| 久治县| 漳浦县| 云梦县| 洛川县| 肃宁县| 法库县|