JAVA操作MySQL tImestamp列值為0時丟擲異常的處理~
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,可以用來配置出現這種情況時的處理策略,該屬性有下列三個屬性值:
l exception:預設值,即丟擲SQL state [S1009]. Cannot convert value....的異常;
l convertToNull:將日期轉換成NULL值;
l round:替換成最近的日期即0001-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的錯誤。
關於MySQL timestamp型別的說明,可以參考: MySQL資料庫中的timestamp型別與時區
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-695531/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 高效Java:丟擲適合抽象的異常 - Kyle CarterJava抽象
- migrate:rollback 時 dropForeign 丟擲的異常解決方案
- 啪,還敢丟擲異常
- oracle主動丟擲異常Oracle
- Swift 中 throws 異常丟擲Swift
- SpringBoot中SpringSecurity 中不能丟擲異常UserNameNotFoundException 問題解析與處理Spring BootGseException
- Java異常十一:使用throw丟擲異常物件;throw和throws的區別Java物件
- OpenCV 3.0後的 xfeatures2d 中detect()函式丟擲異常處理OpenCV函式
- Java 異常處理Java
- JAVA異常處理Java
- JAVA 異常處理Java
- 擷取Spring框架自動丟擲異常Spring框架
- JAVA_異常處理Java
- Java 異常表與異常處理原理Java
- java異常的處理機制Java
- Java 的異常處理機制Java
- 重學Java - 異常處理Java
- java異常處理筆記Java筆記
- Java異常處理(非常全面)Java
- Java異常處理機制Java
- java中異常丟擲後程式碼還會繼續執行嗎Java
- Java 中的異常處理機制Java
- 易優cms404頁面 丟擲HttpException異常HTTPException
- Shiro身份驗證丟擲AuthenticationException異常,解決方案Exception
- 異常的處理
- 異常-throws的方式處理異常
- 異常篇——異常處理
- Java 異常處理:使用和思考Java
- Java進階02 異常處理Java
- JAVA學習之異常處理Java
- Java之異常處理try{}catch(){}Java
- XCode除錯時丟擲異常,定位到某一行程式碼XCode除錯行程
- Java中的異常處理最佳實踐Java
- Java程式異常處理的特殊情況Java
- 異常處理
- MySQL儲存過程的異常處理方法MySql儲存過程
- [譯] Ruby 2.6 Kernel 的system 方法增加是否丟擲異常引數。
- java優雅的處理程式中的異常Java
- 錯誤: 代理丟擲異常錯誤: java.rmi.server.ExportException: Port already in use: 1099;JavaServerExportException