mybatis-plus新增时自动设置创建时间
**光添加注解还不会生效,需要实现MetaObjectHandler的insertFill()方法才能生效,修改则是updateFill方法,生成mybatisplus控制器,注入spring容器。我们才使用basemapper插入时,createTime一般是手动new date()这样,但是每次插入时很麻烦,mybatis-plus有提供自动插入,实现主要如下。
·
我们才使用basemapper插入时,createTime一般是手动new date()这样,但是每次插入时很麻烦,mybatis-plus有提供自动插入,实现主要如下
①
@Data @AllArgsConstructor @NoArgsConstructor @TableName("sys_user") public class User implements Serializable { @TableId(value = "id",type = IdType.ASSIGN_UUID) private String id; private String userName; private String password; private String realName; private String phone; private String email; @TableField(fill = FieldFill.INSERT) private Date registerDate; @TableField(fill = FieldFill.INSERT) private Date lastLoginDate; @TableField(fill = FieldFill.INSERT) private int loginCount; @TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; }
使用注解
@TableField(fill = FieldFill.INSERT)
新增时生效
@TableField(fill = FieldFill.INSERT_UPDATE)
新增以及修改生效
***光添加注解还不会生效,需要实现MetaObjectHandler的insertFill()方法才能生效,修改则是updateFill方法,生成mybatisplus控制器,注入spring容器
@Component public class MybatisPlusHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { setFieldIsNullValue(metaObject,"createTime",new Date()); setFieldIsNullValue(metaObject,"updateTime",new Date()); setFieldIsNullValue(metaObject,"loginCount",1); } @Override public void updateFill(MetaObject metaObject) { setFieldIsNullValue(metaObject,"updateTime",new Date()); } private void setFieldIsNullValue(MetaObject metaObject, String fieldName, Object value) { if (metaObject.getValue(fieldName) == null) { metaObject.setValue(fieldName, value); } } }
完成

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)