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 相关文章推荐
浅谈@Value和@Bean的执行顺序问题
Jun 16 Java/Android
新手入门Jvm-- JVM对象创建与内存分配机制
Jun 18 Java/Android
Java基础之this关键字的使用
Jun 30 Java/Android
Spring中bean的生命周期之getSingleton方法
Jun 30 Java/Android
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
Jul 01 Java/Android
Java 实战项目之家居购物商城系统详解流程
Nov 11 Java/Android
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
Apr 13 Java/Android
JAVA 线程池(池化技术)的实现原理
Apr 28 Java/Android
Java实现扫雷游戏详细代码讲解
May 25 Java/Android
Java中生成微信小程序太阳码的实现方案
Jun 01 Java/Android
java.util.NoSuchElementException原因及两种解决方法
Jun 28 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采集利器 Snoopy 试用心得
2011/07/03 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
解决PHP里大量数据循环时内存耗尽的方法
2015/10/10 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
js使用递归解析xml
2014/12/12 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
Python中splitlines()方法的使用简介
2015/05/20 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
python爬取亚马逊书籍信息代码分享
2017/12/09 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
印尼旅游网站:via
2017/11/12 全球购物
Linux内核产生并发的原因
2016/11/08 面试题
幼儿园中秋节活动方案2013
2014/01/29 职场文书
护理专科自荐书范文
2014/02/18 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
Go 语言结构实例分析
2021/07/04 Golang
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers