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 Cache和EhCache实现缓存管理方式
Jun 15 Java/Android
ObjectMapper 如何忽略字段大小写
Jun 29 Java/Android
Java spring定时任务详解
Oct 05 Java/Android
Java实现二分搜索树的示例代码
Mar 17 Java/Android
Netty客户端接入流程NioSocketChannel创建解析
Mar 25 Java/Android
Spring事务管理下synchronized锁失效问题的解决方法
Mar 31 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
Apr 03 Java/Android
Java 深入探究讲解简单工厂模式
Apr 07 Java/Android
解决Springboot PostMapping无法获取数据的问题
May 06 Java/Android
Android Gradle 插件自定义Plugin实现注意事项
Jun 16 Java/Android
app场景下uniapp的扫码记录
Jul 23 Java/Android
Mybatis 一级缓存和二级缓存原理区别
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
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
2018/12/25 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
办公室内勤工作职责
2013/12/11 职场文书
舞蹈专业求职信
2014/06/13 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
财务负责人岗位职责
2015/02/03 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
集结号观后感
2015/06/08 职场文书
重阳节简报
2015/07/20 职场文书
python中opencv实现图片文本倾斜校正
2021/06/11 Python
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python