关于MyBatis-plus自动填充功能之自动填充时间
准备数据库
准备实体类对象
fill = FieldFill.INSERT代表执行insert操作时填充
fill = FieldFill.INSERT_UPDATE代表执行insert和update操作时填充
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
* 更新时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
编写MyMetaObjectHandler类
之后编写MyMetaObjectHandler类,内容从官网查看并复制
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
//执行新增操作的时候会进到该方法里
public void insertFill(MetaObject metaObject) {
log.info("start insert fill ....");
//注意这里的createTime和updateTime对应的是实体类里的字段名,不是数据库的
this.strictInsertFill(metaObject, "createTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
this.strictInsertFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
}
@Override
//执行修改操作的时候会进到该方法里
public void updateFill(MetaObject metaObject) {
log.info("start update fill ....");
this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class);
}
}
用postman在原有的功能上测试
执行新增操作
执行修改操作