數據庫時間類型字段精度問題
Datetime Timestamp保存毫秒 防止精度丟失
- 數據庫字段爲 DATETIME(3) 時可以保存毫秒。
- 當數據庫爲MariaDb 10.x.x,則需要jdbc驅動需更換爲 mariadb connnector,或者Mariadb 相應Mysql 數據庫版本高於 5.6.4則無需更改。
- DATETIME(3) 對應的 Java 類型,可以是 java.util.Date,可以是 jsr-310 裏定義的其他 時間類型。
- java 類型轉化成 sql 對應的時間類型時,最終由數據庫驅動通過 java.sql.Timestamp 進行處理。
序列化類型怎麼擴展字段
Serializable 的類型,沒有寫 serialVersionUID 怎麼增加字段
- 根據報錯信息拿到 serialVersionUID,原本沒寫則加上這個對應的值,如果不一致,增加字段則會導致反序列化失敗。
- 原本寫了 serialVersionUID 則增加字段不會導致反序列化失敗。
例如,類 CommonInfo 沒有寫serialVersionUID ,但是java編譯後會默認生成一個,根據報錯信息得出 serialVersionUID = -1847111039139094523。
java.io.InvalidClassException: com.slankka.model.CommonInfo; local class incompatible: stream classdesc serialVersionUID = -1847111039139094523, local class serialVersionUID = 2723008659689055735