Mybatis-Plus使用@TableField实现自动填充日期

一、前言我们在日常开发中经常使用ORM框架 , 比如Mybatis、tk.Mybatis、Mybatis-Plus 。不过最广泛的还是Mybatis-Plus , 我们的一些表 , 都会有创建时间、更新时间、创建人、更新人 。这些我们每次都要自己手动set吃力不讨好 , 所以Mybatis-Plus带来了自动填充 , 今天小编带大家一起学习一下 , 本次以填充日期为例哈!!学到的小伙伴记得一键三连哦~~
二、导入maven依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version> </dependency>三、创建实体类@Datapublic class Test implements Serializable {private static final long serialVersionUID = 337361630075002456L;@TableId(type= IdType.ASSIGN_ID)private long id;private String name;private String gender;private String phone;@TableField(value = https://www.isolves.com/it/cxkf/kj/2022-04-24/"create_date",fill = FieldFill.INSERT)private LocalDateTime createDate;@TableField(value = "update_date",fill = FieldFill.UPDATE)private LocalDateTime updateDate;}四、自定义实现类MyMetaObjectHandler@Slf4j@Componentpublic class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {log.info("start insert fill ....");this.strictInsertFill(metaObject, "createDate", LocalDateTime.class, LocalDateTime.now());}@Overridepublic void updateFill(MetaObject metaObject) {log.info("start update fill ....");this.strictUpdateFill(metaObject, "updateDate", LocalDateTime.class, LocalDateTime.now());}}五、Controller测试@RestController@RequestMApping("/test")@Slf4j@RequiredArgsConstructorpublic class TestController {@NonNullprivate TestMapper testMapper;@GetMapping("/insert")public Result insert(@RequestBody Test test){testMapper.insert(test);return Result.success("插入成功");}@PutMapping("/update")public Result update(@RequestBody Test test){testMapper.updateById(test);return Result.success("插入成功");}}【Mybatis-Plus使用@TableField实现自动填充日期】友情提示:
这个@RequiredArgsConstructor注解不明白的看我这篇文章哦!---> 还在使用@Autowrired注入?不妨试试@RequiredArgsConstructor注解完美替代_掉发的小王的博客-CSDN博客
六、测试添加请求地址:
localhost:8089/test/insert
请求内容:
{"name":"王","gender":"男","phone":"123"}

Mybatis-Plus使用@TableField实现自动填充日期

文章插图
 

Mybatis-Plus使用@TableField实现自动填充日期

文章插图
 
我们可以看到没有输入日期 , 自动创建了哈!!
七、测试更新请求地址:
localhost:8089/test/update
请求内容:
{"id":14,"name":"王","gender":"男","phone":"123"}
Mybatis-Plus使用@TableField实现自动填充日期

文章插图
 

Mybatis-Plus使用@TableField实现自动填充日期

文章插图
 
此时我们看到更新也是可以自动填充的!!
八、总结总的来说还是比较方便的 , 减轻开发的工作量 , 代码更加优雅哈!
特别提醒:自动填充的类型要和实体类的类型一致 , 不然不会填充哈!!
喜欢小编的记得关注一波哦!!




    推荐阅读