一、前言
我们在日常开发中经常使用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>
复制代码 三、创建实体类
- @Data
- public 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 = "create_date",fill = FieldFill.INSERT)
- private LocalDateTime createDate;
- @TableField(value = "update_date",fill = FieldFill.UPDATE)
- private LocalDateTime updateDate;
- }
复制代码 四、自定义实现类 MyMetaObjectHandler
- @Slf4j
- @Component
- public class MyMetaObjectHandler implements MetaObjectHandler {
- @Override
- public void insertFill(MetaObject metaObject) {
- log.info("start insert fill ....");
- this.strictInsertFill(metaObject, "createDate", LocalDateTime.class, LocalDateTime.now());
- }
- @Override
- public void updateFill(MetaObject metaObject) {
- log.info("start update fill ....");
- this.strictUpdateFill(metaObject, "updateDate", LocalDateTime.class, LocalDateTime.now());
- }
- }
复制代码 五、Controller测试
- @RestController
- @RequestMapping("/test")
- @Slf4j
- @RequiredArgsConstructor
- public class TestController {
- @NonNull
- private 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("插入成功");
- }
- }
复制代码 友情提示:
这个@RequiredArgsConstructor注解不明白的看我这篇文章哦!---> @RequiredArgsConstructor注解
六、测试添加
请求地址:localhost:8089/test/insert
请求内容:- {
- "name":"王",
- "gender":"男",
- "phone":"123"
- }
复制代码

我们可以看到没有输入日期,自动创建了哈!!
七、测试更新
请求地址:localhost:8089/test/update
请求内容:- {
- "id":14,
- "name":"王",
- "gender":"男",
- "phone":"123"
- }
复制代码

此时我们看到更新也是可以自动填充的!!
八、总结
总的来说还是比较方便的,减轻开发的工作量,代码更加优雅哈!
特别提醒:自动填充的类型要和实体类的类型一致,不然不会填充哈!!
喜欢小编的记得关注一波哦!!
有缘人才可以看得到的哦!!!点击访问!小编自己的网站,里面也是有很多好的文章哦!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |