我們項(xiàng)目的持久層框架采用的的是Mybatis,今天有個項(xiàng)目一直報(bào) java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 的異常 ,從異常報(bào)錯來看,是 0000-00-00 00:00:00無法轉(zhuǎn)換為 java.sql.Timestamp的問題。查看相應(yīng)的表,對應(yīng)的日期類型默認(rèn)值確實(shí)是0000-00-00 00:00:00,且mysql的時(shí)間類型定義時(shí)如果不指明為NULL,則默認(rèn)為not null,產(chǎn)生一個默認(rèn)值即'0000-00-00',于是查閱解決辦法,有如如下解決方法:
方法1:
數(shù)據(jù)庫連接url增加參數(shù)zeroDateTimeBehavior=convertToNull或者round,將默認(rèn)的'0000-00-00'轉(zhuǎn)換為其他值;
方法2:
定義時(shí)間類型時(shí)給出默認(rèn)值,例如 date not null default '1970-00-00',(mysql的時(shí)間類型默認(rèn)值必須從’1970-00-00‘開始)
方法3:
定義時(shí)間類型時(shí)默認(rèn)為null