关于Mybatis-plus全局自动填充功能

官方文档参考链接

首先需要在实体类中添加对应的策略,如:

      /**
            * 最后登录时间
            */
        @TableField(value = "update_date",fill = FieldFill.UPDATE)
    private LocalDateTime updateDate;

            /**
            * 注册时间
            */
        @TableField(value = "insert_date",fill = FieldFill.INSERT)
    private LocalDateTime insertDate;

ps:关于时间的自动注入推荐java8推出的LocalDateTime。
然后需要实现MetaObjectHandler接口并重新需要的相应接口:

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
	@Override
	public void insertFill(MetaObject metaObject) {
		setFieldValByName("insertDate", LocalDateTime.now(), metaObject);
	}

	@Override
	public void updateFill(MetaObject metaObject) {
		setFieldValByName("updateDate", LocalDateTime.now(), metaObject);
	}
}

这里需要注意的是这边第一个添加的属性fieldName是实体类的成员变量不是数据库字段!!!,而且由于我们在实体类中设置的类型为LocalDateTime,所以是不能直接new Date()的,需要使用LocalDateTime.now()来构建填充值。这样还能节省系统消耗。(maybe也是优化的小细节🤐)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值