MyBatis-Plus自动填充新增更新时间
2025-08-0766
当我们使用mybatis对一个实体进行插入或者更新的时候,如何对指定字段默认生成值,不用每次自己去赋值,下面将告诉大家,我会以新增时间和更新时间为例,其他的相似。
1.首先在实体字段加上注解@TableField
publicclassBaseEntityimplementsSerializable{privatestaticfinallongserialVersionUID=1L;/**创建时间*/@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss",timezone="GMT+8")@TableField(fill=)privateDatecreateTime;/**更新时间*/@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss",timezone="GMT+8")@TableField(fill=_UPDATE)privateDateupdateTime;publicDategetCreateTime(){returncreateTime;}publicvoidsetCreateTime(DatecreateTime){=createTime;}publicDategetUpdateTime(){returnupdateTime;}publicvoidsetUpdateTime(DateupdateTime){=updateTime;}}2.具体赋值配置
;;;;;;/***自动生成时间*/@ComponentpublicclassMyDetaObjectHanderimplementsMetaObjectHandler{@OverridepublicvoidinsertFill(MetaObjectmetaObject){ObjectcreateTime=getFieldValByName("createTime",metaObject);if((createTime)){("createTime",newDate(),metaObject);}ObjectupdateTime=getFieldValByName("updateTime",metaObject);if((updateTime)){("updateTime",newDate(),metaObject);}}@OverridepublicvoidupdateFill(MetaObjectmetaObject){("updateTime",newDate(),metaObject);}}这样就达到了,当我们对BaseEntity赋值的时候,会自动对createTime和updateTime附上对应类型的值。