下面详细讲解"Mybatis Plus通用字段自动填充"的完整攻略:
什么是MyBatis Plus通用字段自动填充?
通用字段自动填充是 MyBatis Plus 提供的一个便捷的功能,在这个功能中,我们可以指定公用的字段如:创建时间、更新时间、创建人、更新人等,当插入或修改一条数据时,这些字段会自动填充。
如何实现?
MyBatis Plus 给我们提供了一个接口来实现通用字段自动填充,代码如下:
public interface MetaObjectHandler {
/**
* 插入时自动填充数据
* @param entity 实体类对象
*/
void insertFill(MetaObject metaObject);
/**
* 更新时自动填充数据
* @param entity 实体类对象
*/
void updateFill(MetaObject metaObject);
}
当在实体类中定义字段时,若要该字段支持自动填充,则要在该字段上标记 @TableField 注解。@TableField 注解中的 fill 属性就负责指定自动填充的类型,有如下四种:
- FieldFill.DEFAULT:不填充
- FieldFill.INSERT:插入时填充
- FieldFill.UPDATE:更新时填充
- FieldFill.INSERT_UPDATE:插入和更新时都填充
示例1:自动填充创建时间、创建人
public class User {
/**
* 用户编号
*/
private Long id;
/**
* 用户名
*/
private String username;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
private String createBy;
/**
* 更新时间
*/
@TableField(fill = FieldFill.UPDATE)
private Date updateTime;
/**
* 更新人
*/
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
// 省略 getter 和 setter
}
在插入一条数据时,创建时间和创建人会自动填充,而更新时间和更新人则不会。
示例2:自动填充更新时间、更新人
public class User {
/**
* 用户编号
*/
private Long id;
/**
* 用户名
*/
private String username;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
private String createBy;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 更新人
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateBy;
// 省略 getter 和 setter
}
在插入或更新一条数据时,创建时间和创建人会自动填充,而更新时间和更新人则都会自动填充。
以上就是 MyBatis Plus 通用字段自动填充的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis plus通用字段自动填充的示例 - Python技术站