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 相关文章推荐
SpringBoot生成License的实现示例
Jun 16 Java/Android
看完这篇文章获得一些java if优化技巧
Jul 15 Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
Jul 26 Java/Android
springboot+WebMagic+MyBatis爬虫框架的使用
Aug 07 Java/Android
Java 在生活中的 10 大应用
Nov 02 Java/Android
maven依赖的version声明控制方式
Jan 18 Java/Android
SpringBoot2零基础到精通之异常处理与web原生组件注入
Mar 22 Java/Android
Java详细解析==和equals的区别
Apr 07 Java/Android
零基础学java之带参数以及返回值的方法
Apr 10 Java/Android
解决Springboot PostMapping无法获取数据的问题
May 06 Java/Android
Java实现带图形界面的聊天程序
Jun 10 Java/Android
Java实现简单小画板
Jun 10 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实现删除字符串中任何字符的函数
2015/08/11 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python变量不能以数字打头详解
2016/07/06 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
什么是URL
2015/12/13 面试题
法学毕业生自荐信
2013/11/13 职场文书
大学生演讲稿范文
2014/01/11 职场文书
九年级历史教学反思
2014/01/27 职场文书
高中军训感言1000字
2014/03/01 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
Python实现简繁体转换
2021/06/07 Python
python中的sys模块和os模块
2022/03/20 Python