使用mybatisPlus实现某些字段的自动填充

系列文章目录

使用mybatisPlus实现某些字段的自动填充



前言

mybatisplus自动填充的字段

一、使用场景

在插入表数据时往往需要设置数据的创建时间和更新时间,每次创建实体都需要自己添加一个时间set给某一个字段,此时就可以使用mybatisplus自动填充字段的功能。

二、使用步骤

1.在实体中加注解

代码如下(示例):

package com.sangeng.dao;

public class User {
    @TableField(fill = FieldFill.INSERT)
    private String createTime;
    @TableField(fill = FieldFill.UPDATE)
    private String updateTime;
}

2.写一个控制器需要实现MetaObjectHandler并重写方法

代码如下(示例):

package com.sangeng.config;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;

import java.time.LocalDate;
import java.time.LocalDateTime;

public class MyMeateObjectMapper implements MetaObjectHandler {

    /**
     * 在插入操作时指定的字段自动填充  在需要自动填充的属性上加 @TableField(fill = FieldFill.INSERT)
     * 插入数据的时候就会自动填充创建时间
     *
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
//        this.setFieldValByName("设置的字段", LocalDateTime.now()调用静态方法,metaObject方法对象);
        this.setFieldValByName("createTime", LocalDateTime.now(),metaObject);
    }
    /**
     * 在更新操作时指定的字段自动填充  在entity需要自动填充的属性上加 @TableField(fill = FieldFill.UPDATE)
     * 更新数据的时候就会自动填充创建时间
     *
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject);
    }
}

该处使用的url网络请求的数据。


总结

内容如果对你有帮助,随手点个赞哦~

猜你喜欢

转载自blog.csdn.net/m0_49128301/article/details/130231770