默认值设置与自动填充功能

默认值设置

        上篇文章,我们提到了逻辑删除的概念,因此,我们在插入数据的时候,总是得把is_delete设置为0,然后再执行插入数据操作,为了简便,我们可以把数据库(MySQL)中的is_deleted字段的默认值设置为0:

1.点击选中is_deleted字段所在的表,

2.选择“设计表”

3.选中is_deleted字段

4.将默认的null改为 0

自动填充

自动填充,就是通过统一配置,在插入或更新数据时,自动为某些字段赋值,无需手动赋值。

第一步:在@TableField注解中加入 fill 属性

        FieldFill.INSERT:插入时自动填充

        FieldFill.UPDATE:更新时自动填充

@Data
public class BaseEntity {

    @Schema(description = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "创建时间")
    @JsonIgnore
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    @Schema(description = "更新时间")
    @JsonIgnore
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;

    @Schema(description = "逻辑删除")
    @JsonIgnore
    @TableLogic
    @TableField("is_deleted")
    private Byte isDeleted;

}

第二步:配置自动填充的内容

@Component
public class MybatisMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "createTime"/*填充字段*/, Date.class, new Date()/*填充的值(相当于now())*/);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date());
    }
}

在做完上述配置后,当写入数据时,Mybatis-Plus会自动将实体对象的create_time字段填充为当前时间,当更新数据时,则会自动将实体对象的update_time字段填充为当前时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值