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。
推薦閱讀:
- MySQL中CURRENT_TIMESTAMP的使用方式
- MyBatis-Plus不使用數據庫默認值的問題及解決
- mysql 實現添加時間自動添加更新時間自動更新操作
- mysql中 datatime與timestamp的區別說明
- mybatis-plus 新增/修改如何實現自動填充指定字段