MyBatis-Plus 修改和添加自動填充時間方式
MyBatis-Plus 修改和添加自動填充時間
數(shù)據(jù)庫字段設置:
`valid_verify_time` datetime DEFAULT NULL COMMENT '有效性審核時間',
實體類設置:
@JsonSerialize:序列化
@JsonDeserialize:反序列化
LocalDateTimeSerializer:JDK時間序列化規(guī)則
@ApiModelProperty(value = "有效性審核時間")
@TableField(fill = FieldFill.UPDATE, update = "now()")
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime validVerifyTime;
打印出來的SQL
![]()
mybatisplus自動填充值:完成自動填充更新時間和創(chuàng)造時間,以及坑
一般實體類最后都會帶有createTime和updateTime但我希望讓它是自動更新的,由于mybatisplus的sql是看不到的, 但又不想自己重寫sql。于是解決方法來了!用它自帶的字段自動填充功能!
實體類:
@Data
@TableName("mmall_user")
public class User {
@TableId
private int id;
private String username;
private String password;
private String email;
private String phone;
private String question;
private String answer;
private int role;
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
}

這個是自增策略,我希望createTime只是在插入的時候會自動賦值,而updateTime是插入和更新的時候自動賦值一共是有一下幾種:

已經(jīng)自定義了自動填充的觸發(fā)情況,下面應該定義自動填充的策略了
1.

創(chuàng)建如圖所示的類
代碼如下:
@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert field....");
this.setFieldValByName("createTime", LocalDateTime.now(),metaObject);
this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject);
}
}
第一個是字段name,第二個是value,第三個照著寫
用了LocalDateTime實體類字段類型也要用LocalTime類型
我這里用的:

用String是無法填充的!類型不匹配

這張圖是數(shù)據(jù)庫類型和java類型對應關系。
當然你的數(shù)據(jù)庫這里用timestamp和datetime都是可以的
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決java.sql.SQLException:The?server?time?zone?value?&apo
這篇文章主要介紹了解決java.sql.SQLException:The?server?time?zone?value?'?D1ú±ê×?ê±??'?is?unrecognized問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Java中JavaBean對象和Map的互相轉(zhuǎn)換方法實例
為什么需要將javaBean和map進行轉(zhuǎn)換,在很多應用場景中,需要將key=value形式的數(shù)據(jù)與javaBean對象相互轉(zhuǎn)換,下面這篇文章主要給大家介紹了關于Java中JavaBean對象和Map的互相轉(zhuǎn)換的相關資料,需要的朋友可以參考下2022-11-11
Spring Boot自定義Banner實現(xiàn)代碼
這篇文章主要介紹了Spring Boot自定義Banner實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01
Spring-boot JMS 發(fā)送消息慢的解決方法
這篇文章主要為大家詳細介紹了Spring-boot JMS 發(fā)送消息慢的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
SpringBoot如何配置文件properties和yml
這篇文章主要介紹了SpringBoot如何配置文件properties和yml問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
Java之NoClassDefFoundError的原因及分析
在Java開發(fā)中,經(jīng)常會遇到ClassNotFoundException和NoClassDefFoundError異常,ClassNotFoundException發(fā)生在編譯時JVM無法找到類,而NoClassDefFoundError則發(fā)生在運行時JVM無法加載類,這兩個異常雖然原因相似,但有本質(zhì)區(qū)別2024-09-09
Spring?Boot存在路徑遍歷漏洞CVE-2021-22118的問題解析
CVE-2021-22118?是一個在?Spring?Boot?中發(fā)現(xiàn)的漏洞,該漏洞關系到?Spring?Boot?的開發(fā)者工具(Devtools)中的遠程更新(Remote?Update)功能,這篇文章主要介紹了Spring?Boot存在路徑遍歷漏洞CVE-2021-22118,需要的朋友可以參考下2023-09-09
java WSDL接口webService實現(xiàn)方式
這篇文章主要為大家詳細介紹了java WSDL接口webService實現(xiàn)方式的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04

