Mybatis-Plus为数据表字段自动填充创建时间和更新

遇到的问题

练习项目时遇到create_time和update_time数据表字段需要填充时想到每次都要手写代码有点繁琐而且直觉告诉我肯定有办法自动填充。通过查阅相关资料,最终也是成功达成目标。

解决步骤

1.创建自定义类DateAutoFillHandler实现MetaObjectHandler接口

@Component
public class DateAutoFillHandler implements MetaObjectHandler {
    /*
    将来实体类字段添加@TableField(fill = FieldFill.INSERT)注解后会自动调用
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject,"createTime", LocalDateTime.class,LocalDateTime.now());
        this.strictInsertFill(metaObject,"updateTime", LocalDateTime.class,LocalDateTime.now());
    }

    /*
    将来实体类字段添加@TableField(fill = FieldFill.UPDATE)注解后会自动调用
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictUpdateFill(metaObject,"updateTime", LocalDateTime.class,LocalDateTime.now());
    }
}

注意:

  • 填充处理器DateAutoFillHandler在 Spring Boot 中需要声明 @Component 或 @Bean 注入
  • strictInsertFill 和 strictUpdateFill 方法第二个参数写的是实体类里的属性名,不是对应数据库字段名。

2.使用 @TableField 注解标记实体类中的哪些字段需要填充

FieldFill 是一个枚举,用于指定在何种情况下会自动填充,有如下几种可选值:

  • DEFAULT:默认不处理
  • INSERT:插入填充字段
  • UPDATE:更新填充字段
  • INSERT_UPDATE:插入和更新填充字段

至此我们就完成了日期自动注入功能了 

参考文章

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值