MyBatis-Plus自动填充

自动填充主要用于数据库操作中创建时间修改时间

常用的数据库填充方法有两个:

  1. 数据库级别

在表中新增字段create_timeupdate_time

类型datatime,默认值current_time,在更新时✔️。

  1. 代码级别

在表中新增字段create_timeupdate_time。类型datatime

在实体类的字段属性上添加注解。

@ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date createTime;

@ApiModelProperty(value = "更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;

编写处理器,重写MetaObjectHandler,处理注解。

package watt.gasleakage.handler;

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

import java.util.Date;

/**
 * @Author watt
 * @Description 自动填充
 * @Date 2021/1/21 9:36
 */
@Slf4j
@Component // 记得将处理器加到IOC容器中
public class MyMetaObjectHandler implements MetaObjectHandler {
    // 插入时的填充策略
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill>>>>>>>>>");
        // 字段名 插入值
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }

    // 更新时的填充策略
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start insert fill>>>>>>>>>");
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}

posted @ 2021-01-21 11:28  wattmelon  阅读(154)  评论(0编辑  收藏  举报