java.lang.Object java.lang.Throwable java.lang.Exception java.sql.SQLException java.sql.BatchUpdateException
public class BatchUpdateException
进行批量更新操作期间发生错误时抛出的 SQLException
子类。除了 SQLException
提供的信息以外,BatchUpdateException
还提供批量更新期间成功执行的所有命令的更新计数,也就是发生错误之前执行的所有命令的更新计数。更新计数数组中元素的顺序对应于将命令添加到批处理中的顺序。
批量更新中的命令无法正确执行并抛出 BatchUpdateException
之后,驱动程序可以继续处理批处理中的剩余命令,也可以不再进行处理。如果驱动程序在失败后继续进行处理,那么批处理的每个命令在 BatchUpdateException.getUpdateCounts
方法返回的数组中都有一个对应的元素,而不仅仅是发生错误前成功执行的命令才有对应的元素。在驱动程序继续处理命令的情况下,所有执行失败的命令对应的数组元素都是 Statement.EXECUTE_FAILED
。
构造方法摘要 | |
---|---|
BatchUpdateException() 构造一个 BatchUpdateException 对象。 |
|
BatchUpdateException(int[] updateCounts) 构造一个使用给定 updateCounts 初始化的 BatchUpdateException 对象。 |
|
BatchUpdateException(int[] updateCounts, Throwable cause) 构造一个使用给定 cause 和 updateCounts 初始化的 BatchUpdateException 对象。 |
|
BatchUpdateException(String reason, int[] updateCounts) 构造一个使用给定 reason 和 updateCounts 初始化的 BatchUpdateException 对象。 |
|
BatchUpdateException(String reason, int[] updateCounts, Throwable cause) 构造一个使用给定 reason 、cause 和 updateCounts 构造的 BatchUpdateException 对象。 |
|
BatchUpdateException(String reason, String SQLState, int[] updateCounts) 构造一个使用给定 reason 、SQLState 和 updateCounts 初始化的 BatchUpdateException 对象。 |
|
BatchUpdateException(String reason, String SQLState, int[] updateCounts, Throwable cause) 构造一个使用给定 reason 、SQLState 、cause 和 updateCounts 初始化的 BatchUpdateException 对象。 |
|
BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts) 构造一个使用给定 reason 、SQLState 、vendorCode 和 updateCounts 初始化的 BatchUpdateException 对象。 |
|
BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts, Throwable cause) 构造一个使用给定 reason 、SQLState 、vendorCode 、cause 和 updateCounts 初始化的 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 |
构造方法详细信息 |
---|
public BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts)
reason
、
SQLState
、
vendorCode
和
updateCounts
初始化的
BatchUpdateException
对象。
cause
没有初始化,随后可以调用
Throwable.initCause(java.lang.Throwable)
方法进行初始化。
reason
- 对错误的描述
SQLState
- 标识异常的 XOPEN 或 SQL:2003 代码
vendorCode
- 供特定数据库供应商使用的异常代码
updateCounts
- 一个
int
数组,对于命令失败后继续进行处理的 JDBC 驱动程序,每个数组元素对应批处理中的每个 SQL 命令,指示更新计数、
Statement.SUCCESS_NO_INFO
或
Statement.EXECUTE_FAILED
;对于命令失败后停止处理的 JDBC 驱动程序,每个数组元素对应失败之前批处理中的每个 SQL 命令,指示更新计数或
Statement.SUCCESS_NO_INFO
public BatchUpdateException(String reason, String SQLState, int[] updateCounts)
reason
、
SQLState
和
updateCounts
初始化的
BatchUpdateException
对象。
cause
没有初始化,随后可调用
Throwable.initCause(java.lang.Throwable)
方法进行初始化。供应商代码被初始化为 0。
reason
- 对异常的描述
SQLState
- 标识异常的 XOPEN 或 SQL:2003 代码
updateCounts
- 一个
int
数组,对于命令失败后继续进行处理的 JDBC 驱动程序,每个数组元素对应批处理中的每个 SQL 命令,指示更新计数、
Statement.SUCCESS_NO_INFO
或
Statement.EXECUTE_FAILED
;对于命令失败后停止处理的 JDBC 驱动程序,每个数组元素对应失败之前批处理中的每个 SQL 命令,指示更新计数或
Statement.SUCCESS_NO_INFO
public BatchUpdateException(String reason, int[] updateCounts)
reason
和
updateCounts
初始化的
BatchUpdateException
对象。
cause
没有初始化,随后可调用
Throwable.initCause(java.lang.Throwable)
方法进行初始化。
SQLState
被初始化为
null
,供应商代码被初始化为 0。
reason
- 对异常的描述
updateCounts
- 一个
int
数组,对于命令失败后继续进行处理的 JDBC 驱动程序,每个数组元素对应批处理中的每个 SQL 命令,指示更新计数、
Statement.SUCCESS_NO_INFO
或
Statement.EXECUTE_FAILED
;对于命令失败后停止处理的 JDBC 驱动程序,每个数组元素对应失败之前批处理中的每个 SQL 命令,指示更新计数或
Statement.SUCCESS_NO_INFO
public BatchUpdateException(int[] updateCounts)
updateCounts
初始化的
BatchUpdateException
对象。
cause
没有初始化,随后可调用
Throwable.initCause(java.lang.Throwable)
方法进行初始化。
reason
和
SQLState
被初始化为 null,供应商代码被初始化为 0。
updateCounts
- 一个
int
数组,对于命令失败后继续进行处理的 JDBC 驱动程序,每个数组元素对应批处理中的每个 SQL 命令,指示更新计数、
Statement.SUCCESS_NO_INFO
或
Statement.EXECUTE_FAILED
;对于命令失败后停止处理的 JDBC 驱动程序,每个数组元素对应失败之前批处理中的每个 SQL 命令,指示更新计数或
Statement.SUCCESS_NO_INFO
public BatchUpdateException()
BatchUpdateException
对象。
reason
、
SQLState
和
updateCounts
被初始化为
null
,供应商代码被初始化为 0。
cause
没有初始化,随后可调用
Throwable.initCause(java.lang.Throwable)
方法进行初始化。
public BatchUpdateException(Throwable cause)
cause
初始化的
BatchUpdateException
对象。
SQLState
和
updateCounts
被初始化为
null
,供应商代码被初始化为 0。如果
cause==null
,那么
reason
被初始化为
null
;如果
cause!=null
,则初始化为
cause.toString()
。
cause
- 导致此
SQLException
的底层原因(保存该 cause,以供以后通过
getCause()
方法获取);此参数可以为 null,指示 cause 不存在或未知。
public BatchUpdateException(int[] updateCounts, Throwable cause)
cause
和
updateCounts
初始化的
BatchUpdateException
对象。
SQLState
被初始化为
null
,供应商代码被初始化为 0。如果
cause==null
,那么
reason
被初始化为
null
;如果
cause!=null
,则初始化为
cause.toString()
。
updateCounts
- 一个
int
数组,对于命令失败后继续进行处理的 JDBC 驱动程序,每个数组元素对应批处理中的每个 SQL 命令,指示更新计数、
Statement.SUCCESS_NO_INFO
或
Statement.EXECUTE_FAILED
;对于命令失败后停止处理的 JDBC 驱动程序,每个数组元素对应失败之前批处理中的每个 SQL 命令,指示更新计数或
Statement.SUCCESS_NO_INFO
cause
- 导致此
SQLException
的底层原因(保存该 cause,以供以后通过
getCause()
方法获取);此参数可以为 null,指示 cause 不存在或未知。
public BatchUpdateException(String reason, int[] updateCounts, Throwable cause)
reason
、
cause
和
updateCounts
构造的
BatchUpdateException
对象。
SQLState
被初始化为
null
,供应商代码被初始化为 0。
reason
- 对异常的描述
updateCounts
- 一个
int
数组,对于命令失败后继续进行处理的 JDBC 驱动程序,每个数组元素对应批处理中的每个 SQL 命令,指示更新计数、
Statement.SUCCESS_NO_INFO
或
Statement.EXECUTE_FAILED
;对于命令失败后停止处理的 JDBC 驱动程序,每个数组元素对应失败之前批处理中的每个 SQL 命令,指示更新计数或
Statement.SUCCESS_NO_INFO
cause
- 导致此
SQLException
的底层原因(保存该 cause,以供以后通过
getCause()
方法获取);此参数可以为 null,指示 cause 不存在或未知。
public BatchUpdateException(String reason, String SQLState, int[] updateCounts, Throwable cause)
reason
、
SQLState
、
cause
和
updateCounts
初始化的
BatchUpdateException
对象。供应商代码被初始化为 0。
reason
- 对异常的描述
SQLState
- 标识异常的 XOPEN 或 SQL:2003 代码
updateCounts
- 一个
int
数组,对于命令失败后继续进行处理的 JDBC 驱动程序,每个数组元素对应批处理中的每个 SQL 命令,指示更新计数、
Statement.SUCCESS_NO_INFO
或
Statement.EXECUTE_FAILED
;对于命令失败后停止处理的 JDBC 驱动程序,每个数组元素对应失败之前批处理中的每个 SQL 命令,指示更新计数或
Statement.SUCCESS_NO_INFO
cause
- 导致此
SQLException
的底层原因(保存该 cause,以供以后通过
getCause()
方法获取);此参数可以为 null,指示 cause 不存在或未知。
public BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts, Throwable cause)
reason
、
SQLState
、
vendorCode
、
cause
和
updateCounts
初始化的
BatchUpdateException
对象。
reason
- 对异常的描述
SQLState
- 标识异常的 XOPEN 或 SQL:2003 代码
vendorCode
- 由特定数据库供应商使用的异常代码
updateCounts
- 一个
int
数组,对于命令失败后继续进行处理的 JDBC 驱动程序,每个数组元素对应批处理中的每个 SQL 命令,指示更新计数、
Statement.SUCCESS_NO_INFO
或
Statement.EXECUTE_FAILED
;对于命令失败后停止处理的 JDBC 驱动程序,每个数组元素对应失败之前批处理中的每个 SQL 命令,指示更新计数或
Statement.SUCCESS_NO_INFO
cause
- 导致此
SQLException
的底层原因(保存该 cause,以供以后通过
getCause()
方法获取);此参数可以为 null,指示 cause 不存在或未知。
方法详细信息 |
---|
public int[] getUpdateCounts()
BatchUpdateException
之前成功执行的每条命令的更新计数。
此方法的可能返回值是在 Java 2 SDK 标准版 1.3 版中修改的。这样做是为了使其适应在抛出了 BatchUpdateException
对象之后仍然能够继续处理批量更新中的命令这一新选项。
int
数组,该数组包含发生此错误前成功执行的更新的更新计数。如果驱动程序在发生错误之后仍然继续处理命令,则对批处理中的每条命令返回以下内容之一:
Statement.SUCCESS_NO_INFO
,指示成功执行了命令,但受影响的行数是未知的 Statement.EXECUTE_FAILED
,指示没有成功地执行命令