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
springBoot基于webSocket实现扫码登录
Jun 22 Java/Android
Java Dubbo框架知识点梳理
Jun 26 Java/Android
java设计模式--七大原则详解
Jul 21 Java/Android
spring注解 @PropertySource配置数据源全流程
Mar 25 Java/Android
Java中的继承、多态以及封装
Apr 11 Java/Android
Java的Object类的九种方法
Apr 13 Java/Android
Java数组详细介绍及相关工具类
Apr 14 Java/Android
Java 轮询锁使用时遇到问题
May 11 Java/Android
springboot为异步任务规划自定义线程池的实现
Jun 14 Java/Android
springboot 全局异常处理和统一响应对象的处理方式
Jun 28 Java/Android
MyBatis在注解上使用动态SQL方式(@select使用if)
Jul 07 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
php导入模块文件分享
2015/03/17 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
学习node.js 断言的使用详解
2019/03/18 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
vue组件创建的三种方式小结
2020/02/03 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
详解Python是如何实现issubclass的
2019/07/24 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
python dict乱码如何解决
2020/06/07 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
电工技术比武方案
2014/05/11 职场文书
2014年工程部工作总结
2014/11/25 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
院系推荐意见
2015/06/05 职场文书
高三化学教学反思
2016/02/22 职场文书
Python语言中的数据类型-序列
2022/02/24 Python
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python