mybatis-plus时间字段自动填充
时间代码自动填充的2种方式
数据库方式
- 将数据库字段create_time和update_time设置CURRENT_TIMESTAMP,create_time字段后面不需要勾选更新,update_time勾选即可
代码方式
-
官网: https://www.mybatis-plus.com/guide/auto-fill-metainfo.html
-
参考他源码有哪些策论,源码如下
-
首先添加实体类
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
- 然后编写处理器Handler来进行自动填充,自定义MyMetaObjectHandler,注入到容器接口,下面的 createTime 是你的数据库字段
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;
/**
* @description:
* @author: HaHa
* @time: 2022/4/20 17:36
*/
@Component
@Slf4j
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) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}