在設計數據庫和java類的時候經常用到Date類型,數據庫的CREATE_TIME字段用varchar類型還是String類型?剛入門的人總會感覺String更好用,因為截取就行了,而且數據庫和java類之間無縫銜接,反正傳過取是什么就存什么,不需要擔心其他的,只要管好在java代碼中生成的時間信息並轉化成String就萬事大吉了。
但實際上正規的還是用Date來存儲,因為String類型如果出現空值,截取的時候回報錯,而且在其他處理時間值的類型上還要轉來轉去,經常看到說針對sql使用java.sql.Date,不針對sql寫java.util.Date,但並不准確,java中有java.util.Date和java.sql.Date兩種類型,前者存儲日期+時間,后者存儲時間,如果業務需要存儲日期和時間的信息,Java類中可以用java.util.Date,數據庫端用datetime類型而不是date,同時mybatis中的jdbcType要寫成TIMESTAMP類型,就可以java類和數據庫都保持日期+時間形式的存儲,否則很容易造成時間部分信息丟失情況,
如果是只需要時間信息,java類中用java.sql.Date類型,數據庫用date類型,jdbcType也是DATE類型就可以,總結來說就是
java.util.Date + TIMESTAMP + dateTime
java.sql.Date + DATE +date