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 相关文章推荐
解析Java异步之call future
Jun 14 Java/Android
详解Java实现数据结构之并查集
Jun 23 Java/Android
Netty结合Protobuf进行编解码的方法
Jun 26 Java/Android
一篇文章带你复习java知识点
Jun 28 Java/Android
Java使用httpRequest+Jsoup爬取红蓝球号码
Jul 02 Java/Android
Spring Boot 整合 Apache Dubbo的示例代码
Jul 04 Java/Android
springboot集成springCloud中gateway时启动报错的解决
Jul 16 Java/Android
Java后台生成图片的完整步骤
Aug 04 Java/Android
Java Spring 控制反转(IOC)容器详解
Oct 05 Java/Android
Java虚拟机内存结构及编码实战分享
Apr 07 Java/Android
Spring Boot接口定义和全局异常统一处理
Apr 20 Java/Android
Android开发手册TextInputLayout样式使用示例
Jun 10 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
php读取msn上的用户信息类
2008/12/05 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
Python tkinter事件高级用法实例
2018/01/31 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
浅谈python常用程序算法
2019/03/22 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
Python实现元素等待代码实例
2019/11/11 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
Django数据库迁移常见使用方法
2020/11/12 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
玄武湖导游词
2015/02/05 职场文书
教师党员自我评价范文
2015/03/04 职场文书
起诉书范文
2015/05/20 职场文书