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

這個(gè)是自增策略,我希望createTime只是在插入的時(shí)候會(huì)自動(dòng)賦值,而updateTime是插入和更新的時(shí)候自動(dòng)賦值一共是有一下幾種:

已經(jīng)自定義了自動(dòng)填充的觸發(fā)情況,下面應(yīng)該定義自動(dòng)填充的策略了
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);
}
}
第一個(gè)是字段name,第二個(gè)是value,第三個(gè)照著寫
用了LocalDateTime實(shí)體類字段類型也要用LocalTime類型
我這里用的:

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

這張圖是數(shù)據(jù)庫類型和java類型對(duì)應(yīng)關(guān)系。
當(dāng)然你的數(shù)據(jù)庫這里用timestamp和datetime都是可以的
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決java.lang.NullPointerException報(bào)錯(cuò)以及分析出現(xiàn)的幾種原因
這篇文章介紹了解決java.lang.NullPointerException報(bào)錯(cuò)的方法,以及分析出現(xiàn)的幾種原因。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
解決springboot啟動(dòng)Logback報(bào)錯(cuò)ERROR in ch.qos.logback.cla
這篇文章主要介紹了解決springboot啟動(dòng)Logback報(bào)錯(cuò)ERROR in ch.qos.logback.classic.joran.action.ContextNameAction - Failed to rena問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
Java底層基于二叉搜索樹實(shí)現(xiàn)集合和映射/集合Set功能詳解
這篇文章主要介紹了Java底層基于二叉搜索樹實(shí)現(xiàn)集合和映射/集合Set功能,結(jié)合實(shí)例形式分析了Java使用二叉搜索樹實(shí)現(xiàn)集合和映射相關(guān)操作技巧,需要的朋友可以參考下2020-03-03
SpringBoot+Redis實(shí)現(xiàn)后端接口防重復(fù)提交校驗(yàn)的示例
本文將結(jié)合實(shí)例代碼,介紹SpringBoot+Redis實(shí)現(xiàn)后端接口防重復(fù)提交校驗(yàn)的示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
java 中InputStream,String,File之間的相互轉(zhuǎn)化對(duì)比
這篇文章主要介紹了java 中InputStream,String,File之間的相互轉(zhuǎn)化對(duì)比的相關(guān)資料,需要的朋友可以參考下2017-04-04

