麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MySQL > 正文

JDBC探索之SQLException解析

2024-07-24 13:14:53
字體:
來源:轉載
供稿:網友

1. SQLException 的概述

當使用 JDBC 與數據源(在本文中的數據源表示我們實際使用的數據庫)進行交互的時候遇見錯誤的時候,將會拋出名為 SQLException 的異常。一個 SQLException 的異常里面包含以下信息,用于幫助我們更好的定位錯誤。

錯誤表示:

使用 getMessage 方法便可以獲取。

SQLState 代碼

代碼有五位的字母和數字組成 。多數的代碼由 ISO/ANSI 和 Open Group(X/Open) 標準化,但是仍然存在部分的代碼由數據庫提供商自行實現。

使用 getSQLState 方法便可以獲取。

錯誤代碼

與 SQLState 不同,錯誤代碼是由數據庫提供商自行定義的整數值,存在是由基礎數據源返回的實際錯誤代碼的可能。

使用 getErrorCode 方法便可以獲取。

錯誤原因

表示引發異常的原因,通過不斷調用 getCause 方法可以獲取異常發生的底層原因。

異常鏈

如果出現多個錯誤,則通過此鏈引用異常。

使用 getNextException 方法便可以獲取。

2. SQLException的示例

public static void printSQLException(SQLException e){  for(Throwable e :ex){    if (e instanceof SQLException){      if(ignoreSQLException(((SQLException)e).getSQLState()) == false){        e.printStackTrace(System.err);        System.err.println("SQLState:" + ((SQLException)e).getSQLState());        System.err.println("Error Code:" + ((SQLException)e).getErrorCode());        System.err.println("Message:" + e.getMessage());        Throwable t = ex.getCause();        while(t != null){          System.out.println("Cause :" + t);          t = t.getCause();        }      }    }  }}public static boolean ignoreSQLException(String sqlState){  if(sqlState == null){    System.out.println("The SQL state is not defined");  }  // X0Y32:Jar file already exists in schema  if(sqlState.equalsIgnoreCase("X0Y32")){    return true;  }  // 42Y55:Table already exists in schema  if(sqlState.equalsIgnoreCase("42Y55")){    return true;  }  return true;}

說明:上面的代碼取自 [http:docs.oracle.com] (http://docs.oracle.com/javase/tutorial/jdbc/basics/sqlexception.html)。

3. SQLWarning

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

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

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

4. 其他類型的SQLException

BatchUpdateException:在批處理更新操作期間發生錯誤時,將引發除了所提供的信息,提供的更新計數被處死之前出現了錯誤的所有語句。

SQLClientInfoException:當無法在連接上設置一個或多個客戶端信息屬性時引發。除了所提供的信息,也提供了不設置的客戶端信息屬性的列表。

so on...

總結

以上就是本文關于JDBC探索之SQLException解析的全部內容,希望對大家有所幫助。有什么問題可以隨時留言,小編會及時回復大家的,歡迎大家留言交流討論。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一区二区三区欧美在线观看 | 精品久久久久久亚洲精品 | 色七七亚洲 | 成人毛片视频在线播放 | 欧美视频国产精品 | 9999免费视频| 日韩在线播放第一页 | 一级电影在线观看 | 19禁国产精品福利视频 | 欧美一级一区二区三区 | 久久蜜桃香蕉精品一区二区三区 | 国产精品呻吟 | 精选久久 | 国产精品久久久久久久久久久久久久久久 | 91久久国产综合精品女同国语 | 91短视频网页版 | 黄色片网页 | 在线成人影视 | 黄色免费在线网站 | 亚洲福利视 | 国产一区二区三区四区精 | 91精品观看91久久久久久国产 | 黄色一级片免费在线观看 | 亚洲欧美一区二区三区在线观看 | 国产一区视频在线观看免费 | 视频在线亚洲 | 国产精品久久久久久一区二区三区 | 在线看免电影网站 | 桥本有菜免费av一区二区三区 | 嗯~啊~用力~高h | 香蕉成人在线观看 | 一级黄色片在线看 | 毛片a级毛片免费播放100 | 91久久久久久久久久久久久 | 亚洲成人精品一区二区 | 免费观看国产视频 | 伊人yinren22综合网色 | 色网站综合| 日韩在线毛片 | 性猛交ⅹxxx乱巴西 在线播放中文 | 国产精品欧美日韩一区二区 |