Mysql-Jdbc配置zerodatetimebehavior=converttonull作用

說明:JAVA連接MySQL數據庫,在操作值爲0的timestamp類型時不能正確的處理,而是默認拋出一個異常,就是所見的:java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 7 to TIMESTAMP。這一問題在官方文檔中有詳細說明,詳見如下鏈接:http://bugs.mysql.com/bug.php?id=19274

http://dev.mysql.com/doc/refman/5.5/en/connector-j-installing-upgrading.html

JDBC連接有一項屬性:zeroDateTimeBehavior 可以用來配置出現這種情況時的處理策略,該屬性有下列三個屬性值:

exception(不指定,則默認)---->默認拋出異常

convertToNull------->轉化爲null

round------->替換成最近的日期即XXXX-01-01

因此對於這類異常,可以考慮通過修改連接串,附加zeroDateTimeBehavior=convertToNull屬性的方式予以規避,例如:

jdbc:mysql://localhost:3306/mydbname?zeroDateTimeBehavior=convertToNull

   從另一個層面講,這類異常的觸發也與timestamp賦值的操作有關,如果能夠在設計階段和記錄寫入階段做好邏輯判斷,避免寫入 '0000-00-00 00:00:00'這類值,那麼也可以避免出現 Cannot convert value '0000-00-00 00:00:00' from column N to TIMESTAMP的錯 誤。

(完)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章