MyBatisPlus使用@TableField註解處理默認填充時間的問題

使用@TableField註解處理默認填充時間的情況

在數據庫的表中創建時間,修改時間!這些個操作一般都是自動化完成的,我們不希望手動更新。

阿裡巴巴開發手冊:所有的數據庫表:gmt_create,gmt_modified幾乎所有的表都要配置上!而且需要自動化!

1.利用數據庫填寫默認時間

在表中新增字段create_time,update_time,給這個字段設置一個current_timestamp時間戳,這樣默認值就是當前時間,但是mysql版本如果過低的話是不支持current_timestamp關鍵字的

如下圖:

在這裡插入圖片描述

2.使用自動填充默認填充插入或更新數據庫時

表中牽涉到的時間 編寫處理器類

首先需要編寫一個處理器,如下圖:

在這裡插入圖片描述

註意上面的處理器一定要加上@Component註解表示把此處理器註入到IOC容器中。SpringBoot中無論是處理器包handler還是配置包config都需要把裡面的類加上@Component註解表示把類註入到IOC容器中,要不然處理器和配置類不會生效。

給實體類的屬性添加@TableField註解

其次要在對應的實體類上的屬性上加上@TableField註解

如下圖:

在這裡插入圖片描述

測試

最後寫一個單元測試,測試更新或者插入的時候能否實現createTime和updateTime的自動填充操作

如下圖:

在這裡插入圖片描述

測試成功的結果狀態

數據庫中的字段類型要設置成是datetime,添加成功後的數據格式

如下圖:

在這裡插入圖片描述

類型設置

數據庫中的表中的時間字段create_time和update_time設置成datetime類型,User實體中的createTime和updateTime和處理器中的new Date()所有的時間類型用java.util.Date包中的Date類型。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: