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数据结构之链表相关知识总结
Jun 18 Java/Android
IDEA使用SpringAssistant插件创建SpringCloud项目
Jun 23 Java/Android
Spring Data JPA的Audit功能审计数据库的变更
Jun 26 Java/Android
分析并发编程之LongAdder原理
Jun 29 Java/Android
SpringMVC 整合SSM框架详解
Aug 30 Java/Android
Java spring定时任务详解
Oct 05 Java/Android
Java8中Stream的一些神操作
Nov 02 Java/Android
SpringDataJPA实体类关系映射配置方式
Dec 06 Java/Android
关于MybatisPlus配置双数据库驱动连接数据库问题
Jan 22 Java/Android
Java 关于String字符串原理上的问题
Apr 07 Java/Android
Java版 简易五子棋小游戏
May 04 Java/Android
详解Flutter自定义应用程序内键盘的实现方法
Jun 14 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中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
金智子午JAVA面试题
2015/09/04 面试题