日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

PostgreSQL JDBC SQLWarning

發布時間:2025/3/20 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PostgreSQL JDBC SQLWarning 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

參考:

https://blog.csdn.net/tbc123tbc/article/details/78845844

https://www.cnblogs.com/xiao2/p/7215785.html

?

SQLException

當使用 JDBC 與數據源(我們實際使用的數據庫)進行交互時,遇見錯誤將會主動拋出名為 SQLException 的異常。

SQLException 的主要構成如下,用于幫助我們更好的定位錯誤: message:錯誤詳情使用 getMessage 方法獲取。 SQLState代碼有五位的字母和數字組成 。多數的代碼由 ISO/ANSI 和 Open Group(X/Open) 標準化,但是仍然存在部分的代碼由數據庫提供商自行實現。使用 getSQLState 方法獲取。 ErrorCode與 SQLState 不同,錯誤代碼是由數據庫提供商自行定義的整數值,存在是由基礎數據源返回的實際錯誤代碼的可能。使用 getErrorCode 方法獲取。 cause表示引發異常的原因,通過不斷調用 getCause 方法可以獲取異常發生的底層原因。 異常鏈(NextException)如果出現多個錯誤,則通過此鏈引用異常。使用 getNextException 方法獲取。

異常鏈(NextException)的遍歷

SQLWarning warn = stmt.getWarnings();if(warn != null){for (Throwable e : warn){logger.debug(e.getMessage());}} //orwhile (ex != null){logger.error("SQLState:" + ex.getSQLState());logger.error("Error Code:" + ex.getErrorCode());logger.error("Message:" + ex.getMessage());Throwable t = ex.getCause();while (t != null){System.out.println("Cause:" + t);t = t.getCause();}ex = ex.getNextException();}

?

SQLWarning

是 SQLException 的一個子類,用于表示數據庫訪問時出現的警告。 作為異常,SQLWarning 不會停止執行應用程序,而是提醒用戶沒有按計劃發生任何事情。比如,警告有可能會通知你嘗試撤銷的某個權限沒有成功,或者通知你在請求斷開的時間可能發生錯誤。

SQLWarning的主要構成與SQLException相同,有message, SQLState,ErrorCode, cause,異常鏈(NextWarning)。

SQLWarning 有可能被 Connection 、Statement (包括 PreparedStatement 和 CallableStatement)或 ResultSet 報告,這些類都存在 getWarnings 方法,通過調用該方法才能看到調用對象上報告的第一個警告。如果 getWarning 返回一個警告,我們可以調用其 getNextWarning 方法獲取下一個警告。每執行一行語句,那么前面那行語句的警告將會清除,這意味著如果我們想要檢索報告處理來的警告,那么必須在下一行語句執行之前檢索。
?

異常鏈(NextWarning)的遍歷方法

SQLWarning warn = stmt.getWarnings();if(warn != null){for (Throwable e : warn){logger.debug(e.getMessage());}}

DataTruncation 是最常見的警告,其SQLState代碼均為01004,表示在讀取和寫入數據的時候存在問題。DataTruncation 有很多方法可以幫助我們去理解哪個列或參數數據被截斷,截斷是在讀取還是寫入操作,應該傳輸多少字節以及實際傳輸的字節數。

?

SQLState == PG Error Code

ref: https://www.postgresql.org/docs/10/errcodes-appendix.html

?

轉載于:https://my.oschina.net/liuyuanyuangogo/blog/3000106

總結

以上是生活随笔為你收集整理的PostgreSQL JDBC SQLWarning的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。