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 Shutdown Hook场景使用及源码分析
Jun 15 Java/Android
基于Java的MathML转图片的方法(示例代码)
Jun 23 Java/Android
Java并发编程之详解CyclicBarrier线程同步
Jun 23 Java/Android
详解Java线程池是如何重复利用空闲线程的
Jun 26 Java/Android
Java Kafka 消费积压监控的示例代码
Jul 01 Java/Android
java解析XML详解
Jul 09 Java/Android
java多态注意项小结
Oct 16 Java/Android
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
Jan 18 Java/Android
JVM的类加载器和双亲委派模式你了解吗
Mar 13 Java/Android
SpringBoot整合Minio文件存储
Apr 03 Java/Android
JAVA springCloud项目搭建流程
May 11 Java/Android
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
Jun 01 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与XML的PDF文档生成技术
2006/10/09 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
js中replace的用法总结
2013/12/27 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
python实现自动重启本程序的方法
2015/07/09 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
Python3.5运算符操作实例详解
2019/04/25 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
本科生个人求职自荐信
2013/09/26 职场文书
办公室驾驶员岗位职责
2013/11/15 职场文书
最新党员思想汇报
2014/01/01 职场文书
初一家长会邀请函
2014/01/31 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
难忘的一天教学反思
2014/04/30 职场文书
个人评语大全
2014/05/04 职场文书
团员个人总结
2015/02/26 职场文书
工程质量保证书
2015/05/09 职场文书
2015初中团委工作总结
2015/07/28 职场文书
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript
Go语言读取txt文档的操作方法
2022/01/22 Golang