MyBatis-Plus标签@TableField之fill自动填充方式
作者:weixin_46084802
这篇文章主要介绍了MyBatis-Plus标签@TableField之fill自动填充方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
@TableField之fill自动填充
mybatis-plus中
TableField映射非主键字段,value映射字段名,exist表示是否为数据库字段,select表示是否查询该字段,fill表示是否自动填充
实体类
@Data public class User { @TableId(type = IdType.NONE) private Long id; private String userName; private String passWord; @TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; }
自动填充处理器
@Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); } @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("updateTime",new Date(),metaObject); } }
MyBatis-Plus自动填充
mybatis-plus 自动填充公共字段
直接上代码
首先我们要实现mybatis-plus的MetaObjectHandler接口,代码如下:
/** * @USER WSF * @DATE 2020/8/10 13:41 **/ @SpringBootConfiguration public class MetaObjectConfig implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { //拿到类是否有此字段 boolean hasGetter = metaObject.hasGetter("createDate"); if (hasGetter) { // this.strictInsertFill(metaObject,"字段名对应你的实体类的字段名",String.class,"Value"); this.strictInsertFill(metaObject,"createDate", LocalDateTime.class,LocalDateTime.now()); } } @Override public void updateFill(MetaObject metaObject) { Object upDateTime = getFieldValByName("upDateTime", metaObject); if (upDateTime == null) { this.strictUpdateFill(metaObject,"upDate",LocalDateTime.class,LocalDateTime.now()); } } }
实体类
@Data @TableName("t_user") public class User { @TableId(type = IdType.AUTO) private Integer id; @TableField("user_name") private String username; @TableField("pass_word") private String password; /** * 如果要实现自动填充则加上 * fill = FieldFill.INSERT新增时自动填充 * fill = fill = FieldFill.INSERT_UPDATE新增和修改都自动填充 * fill = FieldFill.DEFAULT 删除时自动填充 */ @TableField(value = "crate_date",fill = FieldFill.INSERT) private LocalDateTime createDate; //新增时间 @TableField(value = "up_name",fill = FieldFill.UPDATE) private String upName; //更新人 // ................... }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。