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


Posted in Java/Android onApril 26, 2022

一、前言

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

Mybatis-Plus 使用 @TableField 自动填充日期Mybatis-Plus 使用 @TableField 自动填充日期我们可以看到没有输入日期,自动创建了哈!!

七、测试更新

请求地址:localhost:8089/test/update 请求内容:

{ 
	"id":14,
    "name":"王",
    "gender":"男",
    "phone":"123"
}
复制代码

Mybatis-Plus 使用 @TableField 自动填充日期Mybatis-Plus 使用 @TableField 自动填充日期此时我们看到更新也是可以自动填充的!!

八、总结

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

到此这篇关于Mybatis-Plus使用@TableField实现自动填充日期的代码示例的文章就介绍到这了!


Tags in this post...

Java/Android 相关文章推荐
ConstraintValidator类如何实现自定义注解校验前端传参
Jun 18 Java/Android
浅谈什么是SpringBoot异常处理自动配置的原理
Jun 21 Java/Android
Java Dubbo框架知识点梳理
Jun 26 Java/Android
jackson json序列化实现首字母大写,第二个字母需小写
Jun 29 Java/Android
解决ObjectMapper.convertValue() 遇到的一些问题
Jun 30 Java/Android
Java基础之this关键字的使用
Jun 30 Java/Android
JUnit5常用注解的使用
Jul 02 Java/Android
新手初学Java List 接口
Jul 07 Java/Android
Java数组详细介绍及相关工具类
Apr 14 Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
Apr 24 Java/Android
SpringBoot使用AOP实现统计全局接口访问次数详解
Jun 16 Java/Android
spring 项目实现限流方法示例
Jul 15 Java/Android
Java 写一个简单的图书管理系统
Apr 26 #Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
Apr 24 #Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 #Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 #Java/Android
Android开发 使用文件储存的方式保存QQ密码
Apr 24 #Java/Android
IDEA 2022 Translation 未知错误 翻译文档失败
Android开发实现极为简单的QQ登录页面
You might like
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
iview的table组件自带的过滤器实现
2019/07/12 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
Python使用python-docx读写word文档
2019/08/26 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
几道PHP面试题
2013/04/14 面试题
医院门卫岗位职责
2013/12/30 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
夫妻分居协议书范本(有子女版)
2014/11/01 职场文书
情人节活动总结范文
2015/02/05 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
详解Vue router路由
2021/11/20 Vue.js
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python