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 相关文章推荐
spring项目中切面及AOP的使用方法
Jun 26 Java/Android
SpringBoot实现异步事件驱动的方法
Jun 28 Java/Android
java基础——多线程
Jul 03 Java/Android
gateway与spring-boot-starter-web冲突问题的解决
Jul 16 Java/Android
Java反应式框架Reactor中的Mono和Flux
Jul 25 Java/Android
Java面试题冲刺第十九天--数据库(4)
Aug 07 Java/Android
关于maven依赖 ${xxx.version}报错问题
Jan 18 Java/Android
Java 使用类型为Object的变量指向任意类型的对象
Apr 13 Java/Android
Java 数组的使用
May 11 Java/Android
springboot创建的web项目整合Quartz框架的项目实践
Jun 21 Java/Android
SpringBoot详解整合Redis缓存方法
Jul 15 Java/Android
Spring Boot实现文件上传下载
Aug 14 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也可以?成Shell Script
2006/10/09 PHP
使用PHP编写的SVN类
2013/07/18 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
ES6如何用一句代码实现函数的柯里化
2020/01/18 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
2009/04/09 Python
Python 随机生成中文验证码的实例代码
2013/03/20 Python
Python实现统计代码行的方法分析
2017/07/12 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
python入门之井字棋小游戏
2020/03/05 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
医院护士的求职信范文
2013/12/26 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
厂长岗位职责
2014/02/19 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android