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 相关文章推荐
JUnit5常用注解的使用
Jul 02 Java/Android
Spring实现内置监听器
Jul 09 Java/Android
gateway网关接口请求的校验方式
Jul 15 Java/Android
logback如何自定义日志存储
Aug 30 Java/Android
SpringMVC 整合SSM框架详解
Aug 30 Java/Android
利用Sharding-Jdbc进行分库分表的操作代码
Jan 22 Java/Android
Elasticsearch 配置详解
Apr 19 Java/Android
Mybatis-Plus 使用 @TableField 自动填充日期
Apr 26 Java/Android
Java由浅入深通关抽象类与接口(下篇)
Apr 26 Java/Android
Android存储中最基本的文件存储方式
Apr 30 Java/Android
解决spring.thymeleaf.cache=false不起作用的问题
Jun 10 Java/Android
SpringBoot深入分析讲解监听器模式下
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
PHP 危险函数解释 分析
2009/04/22 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
分享php分页的功能模块
2015/06/16 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
jsTree 基于JQuery的排序节点 Bug
2011/07/26 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
python常规方法实现数组的全排列
2015/03/17 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
Python3模拟登录操作实例分析
2019/03/12 Python
python如何实现视频转代码视频
2019/06/17 Python
Django实现文件上传和下载功能
2019/10/06 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
应届生求职信写作技巧
2013/10/24 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
院系推荐意见
2015/06/05 职场文书
环保建议书作文400字
2015/09/14 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
MySQL 数据类型详情
2021/11/11 MySQL
python前后端自定义分页器
2022/04/13 Python