mybatis-plus 新增/修改实现自动填充指定字段

  1. 需要修改的字段在模型类上添加 @TableField(fill = FieldFill.xxx) 注解。
  • FieldFill的选项:
    mybatis-plus 新增/修改实现自动填充指定字段_第1张图片

哪个字段在什么时候填充需要手动设置注解
mybatis-plus 新增/修改实现自动填充指定字段_第2张图片

  1. 新建一个MetaObjectHandler的实现类MyMetaObjectHandler
package com.demo.mp.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Objects;

@Component // 注入bean
public class MyMetaObjectHandler implements MetaObjectHandler {

  /**
   * @Description: 新增时填充
   *
   * @auther: zpq
   * @date: 2020/11/2 2:26 下午
   */
  @Override
  public void insertFill(MetaObject metaObject) {

    // this.setFieldValByName(字段名, 内容, metaObject:用这个对象进行填充用的,称为元数据对象);

    this.setFieldValByName("createBy", "admin", metaObject);

    // ================setFieldValByName 方法内的内容,有兴趣可以进去看一看,中文注释的==================================================
    /// **
    // * 通用填充
    // *
    // * @param fieldName  java bean property name
    // * @param fieldVal   java bean property value
    // * @param metaObject meta object parameter
    // */
    // default MetaObjectHandler setFieldValByName(String fieldName, Object fieldVal, MetaObject
    // metaObject) {
    //  if (Objects.nonNull(fieldVal) && metaObject.hasSetter(fieldName)) {
    //    metaObject.setValue(fieldName, fieldVal);
    //  }
    //  return this;
    // }
  }

  /**
   * * @Description: 更新时填充
   *
   * @auther: zpq
   * @date: 2020/11/2 11:37 上午
   */
  @Override
  public void updateFill(MetaObject metaObject) {
    this.setFieldValByName("updateBy", "admin", metaObject);
  }
}
  • 完成之后就可以使用了

注意: 当你设置了逻辑删除,在逻辑删除的时候,是不会进行修改填充的,这个需要注意一下。

你可能感兴趣的:(java个人笔记,mybatis,mybatis-plus)