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

博客 分享
0 126
优雅殿下
优雅殿下 2022-08-29 11:03:48
悬赏:0 积分 收藏

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 = "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 {    @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@RequiredArgsConstructorpublic 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"}

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

八、总结

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


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

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

posted @ 2022-08-29 10:33 小王写博客 阅读(15) 评论(0) 编辑 收藏 举报
回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2018 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员