Loading... #### 1. 定义顶级父类`DO` ```java @Data public class BaseDO { /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) // 插入时填充 private Date createTime; /** * 修改时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) // 插入和更新时填充 private Date updateTime; /** * 删除标志 */ @TableField(fill = FieldFill.INSERT) // 插入时填充 private Integer delFlag; } ``` #### 2. 继承`MetaObjectHandler` ```java public class MyMetaObjectHandler implements MetaObjectHandler { /** * 数据新增时填充 * * @param metaObject */ @Override public void insertFill(MetaObject metaObject) { this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); this.strictInsertFill(metaObject, "updateTime", Date.class, new Date()); this.strictInsertFill(metaObject, "delFlag", Integer.class, DelEnum.NORMAL.code()); } /** * 数据修改时填充 * * @param metaObject */ @Override public void updateFill(MetaObject metaObject) { this.strictInsertFill(metaObject, "updateTime", Date.class, new Date()); } } ``` `MetaObjectHandler.class` 类定义了两个方法:`insertFill` 和 `updateFill` `insertFill` 在插入数据时自动填充字段 `updateTime` 在更新数据时自动更新字段 用法 `this.strictInsertFill(metaObject, 字段名, 字段类型, 值);` Last modification:January 1, 2024 © Allow specification reprint Like 0 如果觉得我的文章对你有用,请随意赞赏