一、为什么自动填充
在项目开发中,部分需要存入数据库的内容(如创建事件、修改时间)不应该由用户指定,而是自己进行内容的填充,这显然是合理的。MybatisPlus提供了自动填充的功能。
二、如何实现自动填充
首先在数据库表中要包含gmt_create和gmt_modified两个字段。
(1)在实体类给相应需要自动填充的属性添加注解,创建时间的注解@TableField(fill = FieldFill.INSERT),修改时间的注解@TableField(fill = FieldFill.INSERT_UPDATE)。
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间")
private Date gmtCreate;
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "更新时间")
private Date gmtModified;
(2)自定义实现类 MyMetaObjectHandler(类标记为@Component,交由spring管理)
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
// 实现自动填充
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
// 属性名称
this.setFieldValByName("gmtCreate",new Date(),metaObject);
this.setFieldValByName("gmtModified",new Date(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("gmtModified",new Date(),metaObject);
}
}
再次添加数据时就可以实现自动填充啦!!!