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实战之用Swing实现通讯录管理系统
Jun 13 Java/Android
Spring整合Mybatis的全过程
Jun 28 Java/Android
SpringBoot整合Mybatis Generator自动生成代码
Aug 23 Java/Android
深入解读Java三大集合之map list set的用法
Nov 11 Java/Android
java代码实现空间切割
Jan 18 Java/Android
java协程框架quasar和kotlin中的协程对比分析
Feb 24 Java/Android
springboot 自定义配置 解决Boolean属性不生效
Mar 18 Java/Android
MyBatis配置文件解析与MyBatis实例演示
Apr 07 Java/Android
Android开发之底部导航栏的快速实现
Apr 28 Java/Android
springcloud整合seata
May 20 Java/Android
springboot读取resources下文件的方式详解
Jun 21 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
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
Terran剧情介绍
2020/03/14 星际争霸
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
php实现通过ftp上传文件
2015/06/19 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
师范生自荐信
2013/10/27 职场文书
初中教师业务学习材料
2014/05/12 职场文书
上党课的心得体会
2014/09/02 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
Golang表示枚举类型的详细讲解
2021/09/04 Golang