Mybatis

一、前言

我们在日常开发中经常使用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" } 

在这里插入图片描述
在这里插入图片描述
此时我们看到更新也是可以自动填充的!!

八、总结

总的来说还是比较方便的,减轻开发的工作量,代码更加优雅哈!
特别提醒:自动填充的类型要和实体类的类型一致,不然不会填充哈!!
喜欢小编的记得关注一波哦!!


有缘人才可以看得到的哦!!!

点击访问!小编自己的网站,里面也是有很多好的文章哦!

商匡云商
Logo
注册新帐户
对比商品
  • 合计 (0)
对比
0
购物车