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中的static关键字
Jun 14 Java/Android
Springboot使用Spring Data JPA实现数据库操作
Jun 30 Java/Android
关于springboot 配置date字段返回时间戳的问题
Jul 25 Java/Android
聊聊Lombok中的@Builder注解使用教程
Nov 17 Java/Android
java协程框架quasar和kotlin中的协程对比分析
Feb 24 Java/Android
Netty客户端接入流程NioSocketChannel创建解析
Mar 25 Java/Android
Spring Boot 底层原理基础深度解析
Apr 03 Java/Android
Android Flutter实现3D动画效果示例详解
Apr 07 Java/Android
JavaWeb Servlet开发注册页面实例
Apr 11 Java/Android
JAVA springCloud项目搭建流程
May 11 Java/Android
java实现自定义时钟并实现走时功能
Jun 21 Java/Android
Android实现图片九宫格
Jun 28 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调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
PHP中__autoload和Smarty冲突的简单解决方法
2016/04/08 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
js实现文字截断功能
2016/09/14 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
金融专业个人求职信
2013/09/22 职场文书
庆元旦广播稿
2014/02/10 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
小学教师工作总结2015
2015/04/07 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
mysql优化
2021/04/06 MySQL
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL