• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mybatis-plus自动填充

mybatis 海叔叔 4年前 (2021-11-11) 64次浏览 已收录 0个评论

mybatis-plus自动填充
学习使用mybatis-plus的自动填充功能,对create_time和update_time做一个自动填充,期间碰到了一些问题,记录一下问题和相关代码?

在实体类字段上增加注解@TableField(fill = FieldFill.INSERT)或者@TableField(fill = FieldFill.UPDATE)
User

添加MyMetaObjectHandler类(名字可自定义,注意要实现MetaObjectHandler类)

==这块有个坑,要注意字段类型,mybatis-plus在时间上默认用的是LocalDateTime类,测试的时候没注意,用了Date类,结果导致值一直添加不进去?,再提一嘴,strictInsertFill() 方法的第二个参数是类下的字段名,不是数据库中的字段名==

MyMetaObjectHandler

复制代码或者查看详情可移步至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(推荐使用)
        this.strictUpdateFill(metaObject, "updateTime", 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官网


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mybatis-plus自动填充

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址