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 相关文章推荐
使用feign服务调用添加Header参数
Jun 23 Java/Android
Java基础之详解HashSet的使用方法
Jun 30 Java/Android
spring boot项目application.properties文件存放及使用介绍
Jun 30 Java/Android
springboot 启动如何排除某些bean的注入
Aug 02 Java/Android
聊聊SpringBoot自动装配的魔力
Nov 17 Java/Android
Jpa Specification如何实现and和or同时使用查询
Nov 23 Java/Android
解决persistence.xml配置文件修改存放路径的问题
Feb 24 Java/Android
Java实现二分搜索树的示例代码
Mar 17 Java/Android
Java 关于String字符串原理上的问题
Apr 07 Java/Android
多线程Spring通过@Scheduled实现定时任务
May 25 Java/Android
Spring Cloud OAuth2实现自定义token返回格式
Jun 25 Java/Android
SpringBoot详解执行过程
Jul 15 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
json跟xml的对比分析
2008/06/10 Javascript
js 上传图片预览问题
2010/12/06 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
Jdbc数据访问技术面试题
2012/03/30 面试题
2014年党员公开承诺书范文
2014/03/28 职场文书
给公司的建议书范文
2014/05/13 职场文书
信访工作汇报材料
2014/10/27 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
经理岗位职责
2015/02/02 职场文书
教师求职自荐信
2015/03/26 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
结婚幸福感言
2015/08/01 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL