亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過 DataAccessException 檢索 postgres 數據庫上的 SQL

如何通過 DataAccessException 檢索 postgres 數據庫上的 SQL

SMILET 2023-04-26 16:18:31
我正在嘗試使用 postgresql 數據庫上的 spring data jpa 從數據庫中刪除一條記錄,我需要捕獲 sql 錯誤代碼try {    userRepository.deleteUser(id);} catch(org.springframework.dao.DataAccessException e) {    // here}如何在 catch 塊中獲取 sql 錯誤代碼?getCause 或 getMessage 方法未檢索 sql 錯誤代碼爪哇postgresql冬眠jdbc彈簧數據-jpa
查看完整描述

1 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

在接口的官方 JavaDocSQLExceptionTranslator中,我們找到了這個提示:

返回的 DataAccessException 應該包含作為根本原因的原始異常。?SQLException但是,由于 DataAccessExceptions 也可能由其他資源 API 引起,因此客戶端代碼通常可能不依賴于此。也就是說,當期望發生基于 JDBC 的訪問時,getRootCause() instanceof SQLException檢查(和后續轉換)被認為是可靠的。

因此,考慮到這些信息,您可以編寫如下代碼:

try {

? ? userRepository.deleteUser(id);


} catch(org.springframework.dao.DataAccessException e) {

? ? if( e.getRootCause() instanceof SQLException) {

? ? ? ? SQLException sqlEx = (SQLException) e.getRootCause();

? ? ? ? int sqlErrorCode = sqlEx.getErrorCode();

? ? ? ? // do further things from here on...

? ? }

}

希望這可以幫助。


查看完整回答
反對 回復 2023-04-26
  • 1 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號