MyBatis-Plus標(biāo)簽@TableField之fill自動(dòng)填充方式
@TableField之fill自動(dòng)填充
mybatis-plus中
TableField映射非主鍵字段,value映射字段名,exist表示是否為數(shù)據(jù)庫(kù)字段,select表示是否查詢?cè)撟侄?,fill表示是否自動(dòng)填充
實(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;
}自動(dòng)填充處理器
@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自動(dòng)填充
mybatis-plus 自動(dòng)填充公共字段
直接上代碼
首先我們要實(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,"字段名對(duì)應(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)自動(dòng)填充則加上
? ? ?* fill = FieldFill.INSERT新增時(shí)自動(dòng)填充
? ? ?* fill = fill = FieldFill.INSERT_UPDATE新增和修改都自動(dòng)填充
? ? ?* fill = FieldFill.DEFAULT 刪除時(shí)自動(dòng)填充
? ? ?*/
? ? @TableField(value = "crate_date",fill = FieldFill.INSERT)
? ? private LocalDateTime createDate; ?//新增時(shí)間 ?
? ??
? ? @TableField(value = "up_name",fill = FieldFill.UPDATE)
? ? private String upName; ?//更新人
? ??
? ? // ...................
}以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis-Plus自動(dòng)填充的實(shí)現(xiàn)示例
這篇文章主要介紹了Mybatis-Plus自動(dòng)填充的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Mybatis給數(shù)據(jù)庫(kù)敏感字段加解密詳解
這篇文章主要介紹了Mybatis給數(shù)據(jù)庫(kù)敏感字段加解密詳解,為了保護(hù)數(shù)據(jù)庫(kù)敏感字段數(shù)據(jù)安全,有時(shí)候我們需要將敏感數(shù)據(jù)加密入庫(kù),查詢時(shí)再解密成明文,我們可以利用Mybatis自定義TypeHandler來(lái)處理,需要的朋友可以參考下2023-11-11
Guava事件總線應(yīng)用場(chǎng)景最佳實(shí)踐
這篇文章主要為大家介紹了Guava事件總線應(yīng)用場(chǎng)景最佳實(shí)踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
java實(shí)現(xiàn)二叉樹(shù)的創(chuàng)建及5種遍歷方法(總結(jié))
下面小編就為大家?guī)?lái)一篇java實(shí)現(xiàn)二叉樹(shù)的創(chuàng)建及5種遍歷方法(總結(jié))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04

