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常用的加密算法
Jun 11 Java/Android
springboot中一些比较常用的注解总结
Jun 11 Java/Android
eclipse创建项目没有dynamic web的解决方法
Jun 24 Java/Android
Java基础之线程锁相关知识总结
Jun 30 Java/Android
Java使用jmeter进行压力测试
Jul 09 Java/Android
SpringBoot整合Mybatis Generator自动生成代码
Aug 23 Java/Android
SpringCloud之@FeignClient()注解的使用方式
Sep 25 Java/Android
springboot如何接收application/x-www-form-urlencoded类型的请求
Nov 02 Java/Android
聊聊SpringBoot自动装配的魔力
Nov 17 Java/Android
Jpa Specification如何实现and和or同时使用查询
Nov 23 Java/Android
Dubbo+zookeeper搭配分布式服务的过程详解
Apr 03 Java/Android
Android中View.post和Handler.post的关系
Jun 05 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 get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
PHP模板解析类实例
2015/07/09 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
tagName的使用,留一笔
2006/06/26 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
Python学习pygal绘制线图代码分享
2017/12/09 Python
python多进程实现文件下载传输功能
2018/07/28 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
django+echart数据动态显示的例子
2019/08/12 Python
python读写csv文件的方法
2019/08/13 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
优秀毕业生求职信
2014/06/05 职场文书
车间安全生产标语
2014/06/06 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
小孩不笨观后感
2015/06/03 职场文书
在校证明模板
2015/06/17 职场文书
运动会跳远广播稿
2015/08/19 职场文书
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js