mybatis-plus自动填充踩坑
学习使用mybatis-plus的自动填充功能,对create_time和update_time做一个自动填充,期间碰到了一些问题,记录一下问题和相关代码
- 在实体类字段上增加注解@TableField(fill = FieldFill.INSERT)或者@TableField(fill = FieldFill.UPDATE)
添加MyMetaObjectHandler类(名字可自定义,注意要实现MetaObjectHandler类)
这块有个坑,要注意字段类型,mybatis-plus在时间上默认用的是LocalDateTime类,测试的时候没注意,用了Date类,结果导致值一直添加不进去,再提一嘴,strictInsertFill() 方法的第二个参数是类下的字段名,不是数据库中的字段名
复制代码或者查看详情可移步至mybatis-plus官网 mybatis-plus 自动填充功能
或者直接复制如下
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill ....");
this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用)
}
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill ....");
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
}
}
因为刚好碰到LocalDateTime这个类,就面向百度学习了一下,找到一篇不错的博客,推荐一下 JDK8的LocalDateTime用法
话说,LocalDateTime类在JDK8中就有了,现在JDK15已经出来一段时间了(○´・д・)ノ,而咱现在才知道有这个类,看来得多花时间巩固基础和不断学习了
注:由于此篇文章核心只是记录一下问题的解决方案,并不会从建库建表开始记录,需要从零搭建测试可移步至 mybatis-plus官网
mybatis-plus自动填充踩坑的更多相关文章
- github webhook 实现代码自动部署 踩坑!! 附加git&coding webhook部署代码
踩坑: 1.php程序执行linux命令是以webserver的user用户(如apache .www……)操作的,需要在/etc/sudoers添加用户免密码操作权限; %apache ALL=(A ...
- Mybatis 一对多分页踩坑 对collection的分析
背景描述: 产品和结算对象(结算名和结算金额)是一对多的关系,使用 collection 做一对多配置.但是出现一对多时,数据没有整合至一起,导致一个产品重复出现. class ResponseVo{ ...
- MyBatis切换至MyBatis-plus踩坑Invalid bound statement (not found):
部分情况可以参考https://blog.csdn.net/wwrzyy/article/details/86034458 我的问题出现的根本原因就是没有扫描到mapper的xml文件 因为MyBat ...
- 如何自动填充SQL语句中的公共字段
1. 前言 我们在设计数据库的时候一定会带上新增.更新的时间.操作者等审计信息. 之所以带这些信息是因为假如有一天公司的数据库被人为删了,尽管可能有数据库备份可以恢复数据.但是我们仍然需要追踪到这个事 ...
- MyBatis踩坑之SQLProvider转义字符被删除问题
目录 踩坑背景 问题描述 原因追踪 解决方案 方法一 方法二 踩坑背景 项目架构:Spring Boot + MyBatis + MySQL. 使用MyBatis作为ORM框架,jdbc驱动使用的是m ...
- Mybatis plus通用字段自动填充的最佳实践总结
在进行持久层数据维护(新增或修改)的时候,我们通常需要记录一些非业务字段,比如:create_time.update_time.update_by.create_by等用来维护数据记录的创建时间.修改 ...
- mybatis plus 增删改自动填充字段值
说明 本文实现以下需求效果 创建数据时自动填充 createUserId 和 createTime 更新数据时自动填充 updateUserId 和 updateTime(每次修改都自动填充新的 up ...
- JAVA实用案例之文件导出(JasperReport踩坑实录)
写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...
- AeroSpike踩坑手记1:Architecture of a Real Time Operational DBMS论文导读
又开了一个新的坑,笔者工作之后维护着一个 NoSQL 数据库.而笔者维护的数据库正是基于社区版本的 Aerospike打造而来.所以这个踩坑系列的文章属于工作总结型的内容,会将使用开发 Aerospi ...
- JasperReport报表导出踩坑实录
写在最前面 翻了翻博客,因为太忙,已经好久没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六月份的时候写过一篇利用poi文件导入导出的小De ...
随机推荐
- MySQL之校对集问题
随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...
- 域名证书https配置问题
目前默认通配证书只适配2级通配.例如配置2级域名的通配证书 https://a.baidu.com.如果想配置三级域名的https 需购买3级通配证书.这样才可以配置三级域名. https://a.b ...
- Java课堂学习总结
对于Java字段的初始化来说,共有以下几种方法: 1.类的构造函数(构造方法):当创建一个对象时,其构造函数就会自动调用.构造方法必须与类名相同,无返回值.如果程序员没有定义一个构造函数时,系统会自动 ...
- IDEA中已配置阿里镜像,但maven无法下载jar包的问题
然后我还出现了一个问题,由于使用了HTTPS,存在着SSL证书验证的问题,因此我在IDEA中添加了一行配置: 配置如下: -Dmaven.wagon.http.ssl.insecure=true -D ...
- Docker之RabbitMQ保姆级别安装
Docker之RabbitMQ保姆级别安装: 如果觉得样式不好:跳转即可 http://www.lifengying.site/(md文件复制过来有些样式会不一样) 学英语网站项目:自己先保证Redi ...
- C/C++ 关键字 static 详细解析
static关键字是一个修饰符,根const类似,被它修饰的变量和函数分别被称为静态变量和静态函数,根据修饰的对象的不同,static表现出来的作用也不同. 1. C语言中的 static 在C语言中 ...
- java面向对象九个经典例子程序
1 Hello world例子 1 package Example; //定义自己的包名 2 3 public class Example1 //定义一个类 4 { 5 public static v ...
- 根据指定月份,打印该月份所属的季节。 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 if和switch各写一版
1.public class Month{ public static void main(String args[]){ for (int i = 1;i <= 12 ;i++ ) { if ...
- eclipse创建基于Web的Maven项目
用于方便查找 以下是原博主链接 https://www.cnblogs.com/sam-uncle/p/8676529.html 如何使用maven搭建web项目呢? 第一步:首先创建一个maven项 ...
- react+antd 导出excel文件(简单数据&多级表头)
需求: 在基于react+antd进行开发的页面中,实现导出excel报表的功能 实际场景: 1.简单数据:单层表头+数据 2.复杂数据:多层表头+数据 实现方式: 1.简单数据 简单数据的导出使用了 ...