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 相关文章推荐
MybatisPlus代码生成器的使用方法详解
Jun 13 Java/Android
详解Java实践之抽象工厂模式
Jun 18 Java/Android
springboot集成flyway自动创表的详细配置
Jun 26 Java/Android
Java集成swagger文档组件
Jun 28 Java/Android
详解Java七大阻塞队列之SynchronousQueue
Sep 04 Java/Android
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
Dec 06 Java/Android
使用Java去实现超市会员管理系统
Mar 18 Java/Android
Java 关于String字符串原理上的问题
Apr 07 Java/Android
springboot 全局异常处理和统一响应对象的处理方式
Jun 28 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
Jul 15 Java/Android
Java实现贪吃蛇游戏的示例代码
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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
php轻松实现中英文混排字符串截取
2014/05/28 PHP
十大使用PHP框架的理由
2015/09/26 PHP
php搜索文件程序分享
2015/10/30 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
python多进程实现进程间通信实例
2017/11/24 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
幼儿教师演讲稿
2014/05/06 职场文书
国企干部对照检查材料
2014/08/22 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
安全先进班组材料
2014/12/26 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
反邪教观后感
2015/06/11 职场文书
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript