mybatisplus 添加 /修改 数据 插入公共字段
/** * 公共字段*/ @Getter @Setter public class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; @TableField(value = "create_by",fill= FieldFill.INSERT) private String createBy; @TableField(value = "update_by",fill= FieldFill.UPDATE) private String updateBy; @TableField(value = "create_time",fill= FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date createTime; @TableField(value = "update_time",fill= FieldFill.UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date updateTime; }
创建一个拦截器
/** * @description:自动注入时间处理 */ import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.unifil.utils.SecurityUtils; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.sql.Timestamp; /** * 处理新增和更新的基础数据填充,配合BaseEntity使用 */ @Slf4j @Component public class MetaHandler implements MetaObjectHandler { /** * 新增数据执行 * * @param metaObject */ @Override public void insertFill(MetaObject metaObject) { try { Timestamp time=new Timestamp(System.currentTimeMillis()); if (metaObject.hasSetter("createTime")) { log.debug("自动插入 createTime"); this.setFieldValByName("createTime", time, metaObject); } if (metaObject.hasSetter("updateTime")) { log.debug("自动插入 updateTime"); this.setFieldValByName("updateTime", time, metaObject); } if (metaObject.hasSetter("createBy")) { log.debug("自动插入 createBy"); this.setFieldValByName("createBy", SecurityUtils.getCurrentUser().getUsername(), metaObject); } if (metaObject.hasSetter("updateBy")) { log.debug("自动插入 updateBy"); this.setFieldValByName("c", SecurityUtils.getCurrentUser().getUsername(), metaObject); } } catch (Exception e) { log.error("自动注入失败:{}", e); } } /** * 更新数据执行 * * @param metaObject */ @Override public void updateFill(MetaObject metaObject) { try { Timestamp time=new Timestamp(System.currentTimeMillis()); if (metaObject.hasSetter("updateTime")) { log.debug("自动插入 updateTime"); this.setFieldValByName("updateTime", time, metaObject); } if (metaObject.hasSetter("createTime")) { log.debug("自动插入 createTime"); this.setFieldValByName("createTime", time, metaObject); } if (metaObject.hasSetter("createBy")) { log.debug("自动插入 createBy"); this.setFieldValByName("createBy", SecurityUtils.getCurrentUser().getUsername(), metaObject); } if (metaObject.hasSetter("updateBy")) { log.debug("自动插入 updateBy"); this.setFieldValByName("updateBy", SecurityUtils.getCurrentUser().getUsername(), metaObject); } } catch (Exception e) { log.error("自动注入失败:{}", e); } } }