优秀的Mybatis-plus又来了,这次将体验创建时间,更新时间的自动填充功能,
记得在阿里巴巴开发手册中提到一个规范,id,create_time,update_time为必备字段。
添加一个测试表,几个简单的字段,主要重点在于datetime类型的新的字段 create_time、update_time
阅读这篇博客时不需要你手动测试案例,因为这东西官方已经有文档介绍,我只是将过程展示一遍。
值得注意的是:一般更新时间是需要初始化,所以我们一般会在insertFill中也加入更新时间的配置。
我的测试表结构如下:
创建SpringBoot项目,引入Lombok和Mysql,MP,相关依赖。
实体类如下
@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接口
这一块在官方介绍的比较清楚。
注意事项:
TableField
注解,属性fill
选择对应策略,该声明告知Mybatis-Plus
需要预留注入SQL
字段MyMetaObjectHandler
在 SpringBoot 中需要声明@Component
或@Bean
注入FieldFill.xxx
和字段名
以及字段类型
来区分必须使用父类的strictInsertFill
或者strictUpdateFill
方法fillStrategy
方法下面我进行测试,由于Test命名冲突了,这点也怪我,没考虑好,但是问题不大,我们照常测试。
我们可以看到基本实现了时间上的自动填充。