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 相关文章推荐
为什么在foreach循环中JAVA集合不能添加或删除元素
Jun 11 Java/Android
Java实现简易的分词器功能
Jun 15 Java/Android
springBoot基于webSocket实现扫码登录
Jun 22 Java/Android
Feign调用全局异常处理解决方案
Jun 24 Java/Android
SpringBoot+VUE实现数据表格的实战
Aug 02 Java/Android
浅谈sql_@SelectProvider及使用注意说明
Aug 04 Java/Android
剑指Offer之Java算法习题精讲二叉树专项训练
Mar 21 Java/Android
零基础学java之方法的定义与调用详解
Apr 10 Java/Android
Java 数组的使用
May 11 Java/Android
Java界面编程实现界面跳转
Jun 16 Java/Android
Android RecyclerView实现九宫格效果
Jun 28 Java/Android
JDK8中String的intern()方法实例详细解读
Sep 23 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创建sprite
2014/02/11 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
javascript preload&lazy load
2010/05/13 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
js实现简单的验证码
2015/12/25 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
亚马逊印度站:Amazon.in
2017/10/15 全球购物
建筑设计师岗位职责
2013/11/18 职场文书
企业文明单位申报材料
2014/05/16 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
2014年大学生工作总结
2014/11/20 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书