首页IT科技mybatis 自动添加租户id(Mybatis-Plus使用@TableField实现自动填充日期)

mybatis 自动添加租户id(Mybatis-Plus使用@TableField实现自动填充日期)

时间2025-05-02 09:48:15分类IT科技浏览4165
导读:一、前言 我们在日常开发中经常使用ORM框架,比如Mybatis、tk.Mybatis、Mybatis-Plus。不过最广泛的还是Mybatis-Plus,我们的一些表,都会有...

一           、前言

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

此时我们看到更新也是可以自动填充的!!

八、总结

总的来说还是比较方便的                 ,减轻开发的工作量          ,代码更加优雅哈!

特别提醒:自动填充的类型要和实体类的类型一致,不然不会填充哈!!

喜欢小编的记得关注一波哦!!

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

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

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
linux7 nfs(Linux下NFS网络文件系统的基本使用教程) linux 设定时间(详解Linux系统中的日期设定与date命令的用法)