MySQL驅(qū)動中關于時間的坑
背景:MySQL 8.0數(shù)據(jù)庫;
最近在做一個小框架,因為本身比較精簡,就沒有引入太多依賴,直接用了JDBC來操作數(shù)據(jù)庫,因為我的表中有一個datetime類型的字段,對應的Java代碼中使用的是java.time.LocalDateTime,在處理這個日期字段的時候,就遇到了一個有趣的問題;
在我的數(shù)據(jù)庫表建好后,在Java中使用JDBC原生API實現(xiàn)了一個repository,包含一些數(shù)據(jù)庫的操作,因為代碼中有java.time.LocalDateTime字段,在使用java.sql.PreparedStatement的時候不確認java.sql.PreparedStatement.setObject(int, java.lang.Object)方法接收java.time.LocalDateTime類型的入?yún)⒑笫欠窨梢哉_處理,就寫了一小段測試用例來測試,核心代碼如下:
preparedStatement.setObject(1, LocalDateTime.now());
一行簡單的JDBC調(diào)用設置參數(shù),參數(shù)類型是LocalDateTime,最終發(fā)現(xiàn)沒有報錯,如果一切OK,那么事情到這里就結(jié)束了,但是…….
閱讀全文