JavaTM 2 Platform
Standard Ed. 6

java.sql
類別 BatchUpdateException

java.lang.Object
  繼承者 java.lang.Throwable
      繼承者 java.lang.Exception
          繼承者 java.sql.SQLException
              繼承者 java.sql.BatchUpdateException
所有已實作的介面:
Serializable, Iterable<Throwable>

public class BatchUpdateException
extends SQLException

進行批量更新操作期間發生錯誤時拋出的 SQLException 子類別。除了 SQLException 提供的資訊以外,BatchUpdateException 還提供批量更新期間成功執行的所有命令的更新計數,也就是發生錯誤之前執行的所有命令的更新計數。更新計數陣列中元素的順序對應於將命令添加到批處理中的順序。

批量更新中的命令無法正確執行並拋出 BatchUpdateException 之後,驅動程序可以繼續處理批處理中的剩餘命令,也可以不再進行處理。如果驅動程序在失敗後繼續進行處理,那麼批處理的每個命令在 BatchUpdateException.getUpdateCounts 方法返回的陣列中都有一個對應的元素,而不僅僅是發生錯誤前成功執行的命令才有對應的元素。在驅動程序繼續處理命令的情況下,所有執行失敗的命令對應的陣列元素都是 Statement.EXECUTE_FAILED

從以下版本開始:
1.2
另請參見:
序列化表格

建構子摘要
BatchUpdateException()
          建構一個 BatchUpdateException 物件。
BatchUpdateException(int[] updateCounts)
          建構一個使用給定 updateCounts 初始化的 BatchUpdateException 物件。
BatchUpdateException(int[] updateCounts, Throwable cause)
          建構一個使用給定 causeupdateCounts 初始化的 BatchUpdateException 物件。
BatchUpdateException(String reason, int[] updateCounts)
          建構一個使用給定 reasonupdateCounts 初始化的 BatchUpdateException 物件。
BatchUpdateException(String reason, int[] updateCounts, Throwable cause)
          建構一個使用給定 reasoncauseupdateCounts 建構的 BatchUpdateException 物件。
BatchUpdateException(String reason, String SQLState, int[] updateCounts)
          建構一個使用給定 reasonSQLStateupdateCounts 初始化的 BatchUpdateException 物件。
BatchUpdateException(String reason, String SQLState, int[] updateCounts, Throwable cause)
          建構一個使用給定 reasonSQLStatecauseupdateCounts 初始化的 BatchUpdateException 物件。
BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts)
          建構一個使用給定 reasonSQLStatevendorCodeupdateCounts 初始化的 BatchUpdateException 物件。
BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts, Throwable cause)
          建構一個使用給定 reasonSQLStatevendorCodecauseupdateCounts 初始化的 BatchUpdateException 物件。
BatchUpdateException(Throwable cause)
          建構一個使用給定 cause 初始化的 BatchUpdateException 物件。
 
方法摘要
 int[] getUpdateCounts()
          獲取發生此異常前批量更新中成功執行的每個更新語句的更新計數。
 
從類別 java.sql.SQLException 繼承的方法
getErrorCode, getNextException, getSQLState, iterator, setNextException
 
從類別 java.lang.Throwable 繼承的方法
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

BatchUpdateException

public BatchUpdateException(String reason,
                            String SQLState,
                            int vendorCode,
                            int[] updateCounts)
建構一個使用給定 reasonSQLStatevendorCodeupdateCounts 初始化的 BatchUpdateException 物件。cause 沒有初始化,隨後可以調用 Throwable.initCause(java.lang.Throwable) 方法進行初始化。

參數:
reason - 對錯誤的描述
SQLState - 標識異常的 XOPEN 或 SQL:2003 程式碼
vendorCode - 供特定資料庫供應商使用的異常程式碼
updateCounts - 一個 int 陣列,對於命令失敗後繼續進行處理的 JDBC 驅動程序,每個陣列元素對應批處理中的每個 SQL 命令,指示更新計數、Statement.SUCCESS_NO_INFOStatement.EXECUTE_FAILED;對於命令失敗後停止處理的 JDBC 驅動程序,每個陣列元素對應失敗之前批處理中的每個 SQL 命令,指示更新計數或 Statement.SUCCESS_NO_INFO
從以下版本開始:
1.2

BatchUpdateException

public BatchUpdateException(String reason,
                            String SQLState,
                            int[] updateCounts)
建構一個使用給定 reasonSQLStateupdateCounts 初始化的 BatchUpdateException 物件。cause 沒有初始化,隨後可調用 Throwable.initCause(java.lang.Throwable) 方法進行初始化。供應商程式碼被初始化為 0。

參數:
reason - 對異常的描述
SQLState - 標識異常的 XOPEN 或 SQL:2003 程式碼
updateCounts - 一個 int 陣列,對於命令失敗後繼續進行處理的 JDBC 驅動程序,每個陣列元素對應批處理中的每個 SQL 命令,指示更新計數、Statement.SUCCESS_NO_INFOStatement.EXECUTE_FAILED;對於命令失敗後停止處理的 JDBC 驅動程序,每個陣列元素對應失敗之前批處理中的每個 SQL 命令,指示更新計數或 Statement.SUCCESS_NO_INFO
從以下版本開始:
1.2

BatchUpdateException

public BatchUpdateException(String reason,
                            int[] updateCounts)
建構一個使用給定 reasonupdateCounts 初始化的 BatchUpdateException 物件。cause 沒有初始化,隨後可調用 Throwable.initCause(java.lang.Throwable) 方法進行初始化。SQLState 被初始化為 null,供應商程式碼被初始化為 0。

參數:
reason - 對異常的描述
updateCounts - 一個 int 陣列,對於命令失敗後繼續進行處理的 JDBC 驅動程序,每個陣列元素對應批處理中的每個 SQL 命令,指示更新計數、Statement.SUCCESS_NO_INFOStatement.EXECUTE_FAILED;對於命令失敗後停止處理的 JDBC 驅動程序,每個陣列元素對應失敗之前批處理中的每個 SQL 命令,指示更新計數或 Statement.SUCCESS_NO_INFO
從以下版本開始:
1.2

BatchUpdateException

public BatchUpdateException(int[] updateCounts)
建構一個使用給定 updateCounts 初始化的 BatchUpdateException 物件。cause 沒有初始化,隨後可調用 Throwable.initCause(java.lang.Throwable) 方法進行初始化。reasonSQLState 被初始化為 null,供應商程式碼被初始化為 0。

參數:
updateCounts - 一個 int 陣列,對於命令失敗後繼續進行處理的 JDBC 驅動程序,每個陣列元素對應批處理中的每個 SQL 命令,指示更新計數、Statement.SUCCESS_NO_INFOStatement.EXECUTE_FAILED;對於命令失敗後停止處理的 JDBC 驅動程序,每個陣列元素對應失敗之前批處理中的每個 SQL 命令,指示更新計數或 Statement.SUCCESS_NO_INFO
從以下版本開始:
1.2

BatchUpdateException

public BatchUpdateException()
建構一個 BatchUpdateException 物件。reasonSQLStateupdateCounts 被初始化為 null,供應商程式碼被初始化為 0。cause 沒有初始化,隨後可調用 Throwable.initCause(java.lang.Throwable) 方法進行初始化。

從以下版本開始:
1.2

BatchUpdateException

public BatchUpdateException(Throwable cause)
建構一個使用給定 cause 初始化的 BatchUpdateException 物件。SQLStateupdateCounts 被初始化為 null,供應商程式碼被初始化為 0。如果 cause==null,那麼 reason 被初始化為 null;如果 cause!=null,則初始化為 cause.toString()

參數:
cause - 導致此 SQLException 的底層原因(保存該 cause,以供以後通過 getCause() 方法獲取);此參數可以為 null,指示 cause 不存在或未知。
從以下版本開始:
1.6

BatchUpdateException

public BatchUpdateException(int[] updateCounts,
                            Throwable cause)
建構一個使用給定 causeupdateCounts 初始化的 BatchUpdateException 物件。SQLState 被初始化為 null,供應商程式碼被初始化為 0。如果 cause==null,那麼 reason 被初始化為 null;如果 cause!=null,則初始化為 cause.toString()

參數:
updateCounts - 一個 int 陣列,對於命令失敗後繼續進行處理的 JDBC 驅動程序,每個陣列元素對應批處理中的每個 SQL 命令,指示更新計數、Statement.SUCCESS_NO_INFOStatement.EXECUTE_FAILED;對於命令失敗後停止處理的 JDBC 驅動程序,每個陣列元素對應失敗之前批處理中的每個 SQL 命令,指示更新計數或 Statement.SUCCESS_NO_INFO
cause - 導致此 SQLException 的底層原因(保存該 cause,以供以後通過 getCause() 方法獲取);此參數可以為 null,指示 cause 不存在或未知。
從以下版本開始:
1.6

BatchUpdateException

public BatchUpdateException(String reason,
                            int[] updateCounts,
                            Throwable cause)
建構一個使用給定 reasoncauseupdateCounts 建構的 BatchUpdateException 物件。SQLState 被初始化為 null,供應商程式碼被初始化為 0。

參數:
reason - 對異常的描述
updateCounts - 一個 int 陣列,對於命令失敗後繼續進行處理的 JDBC 驅動程序,每個陣列元素對應批處理中的每個 SQL 命令,指示更新計數、Statement.SUCCESS_NO_INFOStatement.EXECUTE_FAILED;對於命令失敗後停止處理的 JDBC 驅動程序,每個陣列元素對應失敗之前批處理中的每個 SQL 命令,指示更新計數或 Statement.SUCCESS_NO_INFO
cause - 導致此 SQLException 的底層原因(保存該 cause,以供以後通過 getCause() 方法獲取);此參數可以為 null,指示 cause 不存在或未知。
從以下版本開始:
1.6

BatchUpdateException

public BatchUpdateException(String reason,
                            String SQLState,
                            int[] updateCounts,
                            Throwable cause)
建構一個使用給定 reasonSQLStatecauseupdateCounts 初始化的 BatchUpdateException 物件。供應商程式碼被初始化為 0。

參數:
reason - 對異常的描述
SQLState - 標識異常的 XOPEN 或 SQL:2003 程式碼
updateCounts - 一個 int 陣列,對於命令失敗後繼續進行處理的 JDBC 驅動程序,每個陣列元素對應批處理中的每個 SQL 命令,指示更新計數、Statement.SUCCESS_NO_INFOStatement.EXECUTE_FAILED;對於命令失敗後停止處理的 JDBC 驅動程序,每個陣列元素對應失敗之前批處理中的每個 SQL 命令,指示更新計數或 Statement.SUCCESS_NO_INFO
cause - 導致此 SQLException 的底層原因(保存該 cause,以供以後通過 getCause() 方法獲取);此參數可以為 null,指示 cause 不存在或未知。
從以下版本開始:
1.6

BatchUpdateException

public BatchUpdateException(String reason,
                            String SQLState,
                            int vendorCode,
                            int[] updateCounts,
                            Throwable cause)
建構一個使用給定 reasonSQLStatevendorCodecauseupdateCounts 初始化的 BatchUpdateException 物件。

參數:
reason - 對異常的描述
SQLState - 標識異常的 XOPEN 或 SQL:2003 程式碼
vendorCode - 由特定資料庫供應商使用的異常程式碼
updateCounts - 一個 int 陣列,對於命令失敗後繼續進行處理的 JDBC 驅動程序,每個陣列元素對應批處理中的每個 SQL 命令,指示更新計數、Statement.SUCCESS_NO_INFOStatement.EXECUTE_FAILED;對於命令失敗後停止處理的 JDBC 驅動程序,每個陣列元素對應失敗之前批處理中的每個 SQL 命令,指示更新計數或 Statement.SUCCESS_NO_INFO
cause - 導致此 SQLException 的底層原因(保存該 cause,以供以後通過 getCause() 方法獲取);此參數可以為 null,指示 cause 不存在或未知。
從以下版本開始:
1.6
方法詳細資訊

getUpdateCounts

public int[] getUpdateCounts()
獲取發生此異常前批量更新中成功執行的每個更新語句的更新計數。在某一命令無法正確執行時,實作批量更新的驅動程序可以繼續處理批處理中的剩餘命令,也可以不再進行處理。如果驅動程序繼續處理命令,那麼此方法返回的陣列所擁有的元素數量將與批處理中的命令數量相同;否則,該陣列將包含拋出 BatchUpdateException 之前成功執行的每條命令的更新計數。

此方法的可能返回值是在 Java 2 SDK 標準版 1.3 版中修改的。這樣做是為了使其適應在拋出了 BatchUpdateException 物件之後仍然能夠繼續處理批量更新中的命令這一新選項。

返回:
一個 int 陣列,該陣列包含發生此錯誤前成功執行的更新的更新計數。如果驅動程序在發生錯誤之後仍然繼續處理命令,則對批處理中的每條命令返回以下內容之一:
  1. 更新計數
  2. Statement.SUCCESS_NO_INFO,指示成功執行了命令,但受影響的行數是未知的
  3. Statement.EXECUTE_FAILED,指示沒有成功地執行命令
從以下版本開始:
1.3

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only