Loading... 优秀的Mybatis-plus又来了,这次将体验**创建时间**,**更新时间**的自动填充功能, 记得在阿里巴巴开发手册中提到一个规范,id,create_time,update_time为必备字段。 添加一个测试表,几个简单的字段,主要重点在于datetime类型的新的字段 create_time、update_time 阅读这篇博客时不需要你手动测试案例,因为这东西官方已经有文档介绍,我只是将过程展示一遍。 值得注意的是:**一般更新时间是需要初始化,所以我们一般会在insertFill中也加入更新时间的配置。** 我的测试表结构如下:  创建SpringBoot项目,引入Lombok和Mysql,MP,相关依赖。 实体类如下 ```java @Data public class Test { @TableId(type= IdType.AUTO) private Integer id; private String name; @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } ``` 重点在于`@TableField`注解,可以让该字段完成自动填充功能,下图是FieldFill枚举类的几个参数。  接下来配置一个组件类,实现MetaObjectHandler接口 这一块在[官方](https://mp.baomidou.com/guide/auto-fill-metainfo.html)介绍的比较清楚。  > 注意事项: > > - 字段必须声明`TableField`注解,属性`fill`选择对应策略,该声明告知`Mybatis-Plus`需要预留注入`SQL`字段 > - 填充处理器`MyMetaObjectHandler`在 SpringBoot 中需要声明`@Component`或`@Bean`注入 > - 要想根据注解`FieldFill.xxx`和`字段名`以及`字段类型`来区分必须使用父类的`strictInsertFill`或者`strictUpdateFill`方法 > - 不需要根据任何来区分可以使用父类的`fillStrategy`方法 下面我进行测试,由于Test命名冲突了,这点也怪我,没考虑好,但是问题不大,我们照常测试。   我们可以看到基本实现了时间上的自动填充。 Last modification:June 25, 2020 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 如果觉得我的文章对你有用,请随意赞赏