使用场景:项目中经常会遇到一些数据,每次都使用相同的方式填充,例如记录的创建时间,更新时间等,完成这些字段的赋值工作
(1)数据库表中添加自动填充字段
在表中添加datetime类型的新的字段 create_time、update_time
(2)实体上添加属性和注解
@Data
public class User {
......
@TableField(fill = FieldFill.INSERT)
private Date createTime;
//@TableField(fill = FieldFill.INSERT_UPDATE) 使得第一次添加时该属性也有值
@TableField(fill = FieldFill.UPDATE)
private Date updateTime;
}
(3)实现元对象处理器接口
注意:不要忘记添加 @Component 注解
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(MyMetaObjectHandler.class);
@Override
//mp实现添加操作调用该方法
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", new Date(), metaObject);
//this.setFieldValByName("updateTime", new Date(), metaObject);
}
@Override
//mp实现修改操作调用该方法
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}