mybatis-plus 实现自动填充

tech2025-12-06  5

mybatis-plus 实现自动填充

一、说明

在数据库中,有一些字段 需要用到自动填充的功能类似如下:

gmt_create:创建时间yre

gmt_modified:修改时间

这时候我们可以采用 MyBatis-Plus 中的字段自动填充功能去实现

二、实现

1.在要自动填充的字段上添加注解 @TableField
/** * 创建时间 */ @TableField(fill = FieldFill.INSERT) private Date gmtCreate; /** * 更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date gmtModified;
2.注解的fill可选项
/** * 默认不处理 */ DEFAULT, /** * 插入填充字段 */ INSERT, /** * 更新填充字段 */ UPDATE, /** * 插入和更新填充字段 */ INSERT_UPDATE
3.编写MetaObjectHandler的实现类
填充原理是直接给entity的属性设置值!!! 所以字段要写实体类的字段,不要应该是数据库的字段。 @Component public class AutoFill implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.strictInsertFill(metaObject,"gmtCreate",Date.class,new Date()); this.strictInsertFill(metaObject,"gmtModified",Date.class,new Date()); } @Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject,"gmtmodified",Date.class,new Date()); } }
最新回复(0)