# mybatis-plus 使用记录
# @TableField
说明:
- 自动注入 创建人、创建时间、更新人、更新时间
示例:
@Data
public abstract class BaseEntity {
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private String createBy;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateBy;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
@Component
public class MybatisPlusHandler implements MetaObjectHandler {
private final static String CREATE_TIME = "createTime";
private final static String CREATE_BY = "createBy";
private final static String UPDATE_TIME = "updateTime";
private final static String UPDATE_BY = "updateBy";
private final static String ADMIN = "admin";
@Override
public void insertFill(MetaObject metaObject) {
// 新增数据时若对应字段没有值(空串或null)时,以下代码会对该字段进行自动填充
// 时间的自动填充,时间默认填充当前时区系统时间
LocalDateTime localDateTime = LocalDateTime.now();
Date now = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
this.strictInsertFill(metaObject, CREATE_TIME, Date.class, now);
this.strictInsertFill(metaObject, UPDATE_TIME, Date.class, now);
// 操作用户名填充
this.strictInsertFill(metaObject, CREATE_BY, String.class, ADMIN);
this.strictInsertFill(metaObject, UPDATE_BY, String.class, ADMIN);
}
@Override
public void updateFill(MetaObject metaObject) {
// 修改数据时无论字段是否有值,都会对该字段进行自动填充,时间默认填充当前时区系统时间
// 时间的自动填充,时间默认填充当前时区系统时间
LocalDateTime localDateTime = LocalDateTime.now();
Date now = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
this.setFieldValByName(UPDATE_TIME, now, metaObject);
// 操作用户名填充
this.setFieldValByName(UPDATE_BY, adminName, metaObject);
this.strictUpdateFill(metaObject, "updateBy", String.class, ADMIN);
}
}
参考:
# @TableLogic
说明:
- 标记软删除的字段
- 默认值: '0' - 未删除; '1' - 已删除。
参考:
上一篇: 下一篇:
本章目录