MyBatis-Plus標(biāo)簽@TableField之fill自動填充方式
更新時間:2022年06月17日 10:52:42 作者:weixin_46084802
這篇文章主要介紹了MyBatis-Plus標(biāo)簽@TableField之fill自動填充方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
@TableField之fill自動填充
mybatis-plus中
TableField映射非主鍵字段,value映射字段名,exist表示是否為數(shù)據(jù)庫字段,select表示是否查詢該字段,fill表示是否自動填充
實(shí)體類
@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 自動填充公共字段
直接上代碼
首先我們要實(shí)現(xiàn)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,"字段名對應(yīng)你的實(shí)體類的字段名",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()); ? ? ? ? } ? ? } }
實(shí)體類
@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; ? ? /** ? ? ?* 如果要實(shí)現(xiàn)自動填充則加上 ? ? ?* 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; ?//更新人 ? ?? ? ? // ................... }
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis-Plus自動填充的實(shí)現(xiàn)示例
這篇文章主要介紹了Mybatis-Plus自動填充的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08java實(shí)現(xiàn)二叉樹的創(chuàng)建及5種遍歷方法(總結(jié))
下面小編就為大家?guī)硪黄猨ava實(shí)現(xiàn)二叉樹的創(chuàng)建及5種遍歷方法(總結(jié))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04