阅读 238

Mybatis Plus自动填充更新时间

引言

我们在进行数据库更新/插入操作时,字段中如果有更新时间每次插入都需要手动设置字段,这就很麻烦。而Mybatis Plus提供了自动填充字段的设置。能大大简化我们的工作。

1. Mybatis全局设置

Mybatis Plus提供了MetaObjectHandler类,我们只需要继承它并添加到全局设置即可。

<bean id="globalConfig"
    class="com.baomidou.mybatisplus.core.config.GlobalConfig">
    
    <!--DB config -->
    <property name="dbConfig">
    	<bean id="dbConfig"
    		class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
    
    		<property name="logicDeleteValue" value="true" />
    		<property name="logicNotDeleteValue" value="false" />
    	</bean>
    </property>
    
    <!-- 在这里添加object hander-->
    <property name="metaObjectHandler">
    	<bean id="metaObjectHandler" class="xx.xx.xxx.dao.common.CustomMetaObjectHandler"/>
    </property>
</bean>
复制代码

继承后,自己实现insertFill跟updateFill方法,分别对应插入跟更新SQL执行时的实现。

@Component
public class CustomMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {

    }

    @Override
    public void updateFill(MetaObject metaObject) {
        // 使用now()填充更新updatedDate字段
        this.setFieldValByName("updatedDate", LocalDateTime.now(), metaObject);
    }
}
复制代码

2. 字段添加注解

相应字段也要添加TableField注解,fill设置为FieldFill.UPDATE,不然以上的设置也是无效的。

...
    /**
     * 更新时间字段
     */
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updatedDate;
...
复制代码
关注下面的标签,发现更多相似文章
评论