什么是自动填充
有些表中会有更新时间、创建时间、更新人或者创建人这些字段。
每次对数据进行新增、删除、修改时都需要对这些字段进行设置。传统的做法是在进行这些操作前,对Entity的字段进行set设置,然后再进行操作。这种做法不仅容易忘记导致出错、而且代码会显得特别冗余。
虽然新增时间和修改时间可以使用数据库的时间,但是新增人和修改人就不能使用这样的功能。
所以MP就提供自动填充的功能,帮助自定设置这些字段的值,提升开发效率,代码也会显得特别优雅。
步骤一、在Entity上添加注解
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
* 修改时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
步骤二、添加自动填充配置类
@Component
class FillHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", LocalDateTime.now(), metaObject);
this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
}
}
之后更新数据库时,数据库的createTime和updateTime字段会自动更新
MyBatis Plus(MP)提供自动填充功能,用于在插入或更新数据时自动设置如创建时间、修改时间等字段,避免手动设置带来的错误和冗余代码。只需在Entity上添加@TableField注解并配置MetaObjectHandler,即可实现自动填充,提高开发效率。
21万+

被折叠的 条评论
为什么被折叠?



