使用 MyBatis-Plus 实现自动填充功能 Create_time、Update_time自动更新

介绍

在数据库表中,通常会存在一些需要在插入或更新操作时自动填充的字段,比如记录创建时间和更新时间等。为了简化开发流程,MyBatis-Plus 提供了自动填充功能,可以在执行插入或更新操作时自动填充这些字段的值。

本文将介绍如何使用 MyBatis-Plus 实现自动填充功能,并在代码中演示示例。

步骤

  1. 编写自动填充处理器

    首先,我们需要编写一个实现了 MyBatis-Plus 的 MetaObjectHandler 接口的自动填充处理器,用于在插入和更新操作时填充字段的值。以下是一个示例:

    java
    @Slf4j
    @Component(value = "myMetaObjectHandler")
    @Primary
    public class MyMetaObjectHandler implements MetaObjectHandler {
        @Override
        public void insertFill(MetaObject metaObject) {
            log.info("start insert fill ....");
            this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
            this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
        }
    
        @Override
        public void updateFill(MetaObject metaObject) {
            log.info("start update fill ....");
            this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
        }
    }
    

  2. 配置自动填充字段

    在实体类中,使用 @TableField 注解并指定 fill 属性为 FieldFill.INSERTFieldFill.INSERT_UPDATE,以指示需要自动填充的字段。同时,可以使用 @JsonFormat 注解指定日期格式。

    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;
    

  3. 执行插入操作

    在插入操作时,调用 baseMapper.insert() 方法插入数据,自动填充的字段的值将会在插入时自动填充。

@Override
public void add(Student student) {
    int b = baseMapper.insert(student);
    if (b < 0) {
        throw new IllegalArgumentException("参数错误");
    }
}

结论

通过以上步骤,我们实现了使用 MyBatis-Plus 实现自动填充功能。在执行插入或更新操作时,无需手动设置填充字段的值,MyBatis-Plus 会自动填充这些字段的值,简化了开发流程,提高了开发效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值