mybatis-plus 自动填充创建时间/更新时间

方式一:数据库级别

创建时间create_time字段设置类型为timestamp,默认值为CURRENT_TIMESTAMP;

更新时间update_time字段设置类型为timestamp,默认值为CURRENT_TIMESTAMP,勾选根据当前时间戳更新。

实体类createTime字段设置数据类型为Date;

实体类updateTime字段设置数据类型为Date。

private Date createTime;
private Date updateTime;

注意:

mysql只有是8.0版本以上的,才能设置默认值为CURRENT_TIMESTAMP,否则会保存时提示错误。

版本较低需要升级,可参考这篇博客:https://blog.csdn.net/jack__love/article/details/127514405

升级后查看版本:mysql –version

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

方式二:代码级别

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

@TableField(fill = FieldFill.INSERT)
private Date createTime;

@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;

编写处理器处理注解

package cn.com.dwr.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;

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    /**
     * 插入时的填充策略
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill.....");
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }

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

推荐第二种方式!

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/2016d2912e.html