mybatisplus的自动填充功能

使用情景:当我们往数据库表中加入一条数据,或者更新一条数据的时候,通常要调用实体类的set方法,运用mybatisplus的自动填充功能则可以帮我们自动设置,不用我们手动调用set()方法。

具体实现

1、在实体类中对需要自动填充的属性加上注解

//对于添加时要填充的
@TableField(fill = FieldFill.INSERT)
//对于更新时要填充的
@TableField(fill = FieldFill.INSERT_UPDATE)

2、创建类
类要实现MetaObjectHandler接口
实现接口中的insertFill和updateFill方法

以添加和更新数据时的时间为例

@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
@Component//交给spring管理
//@Service
//@Repository
public class MyMetaObjectHandler implements MetaObjectHandler {
    //使用mp实现添加操作执行
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
    //使用mp实现更新操作执行

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

    }
}

对于@Component、@Service、@Repositor这三个注解是要把该类交给spring进行管理,否则,在添加或者更新操作时,将得不到自动填充的功能
三个注解任意一个都可以;

对于一两次的更新添加操作可能看不出mp填充功能的方便,有人可能觉得直接set更简单,但是对于操作频繁而言,可以简洁很多。

猜你喜欢

转载自blog.csdn.net/fighting32/article/details/107060267