- 所有已实现的接口:
Serializable,Iterable<Throwable>
SQLException 的子类在批量更新操作期间发生错误时抛出。除了 SQLException 提供的信息外,BatchUpdateException 还提供了在批量更新期间成功执行的所有命令的更新计数,即发生错误之前执行的所有命令。更新计数数组中元素的顺序对应于将命令添加到批处理的顺序。
在批处理更新中的命令无法正确执行并抛出 BatchUpdateException 后,驱动程序可能会也可能不会继续处理批处理中的剩余命令。如果驱动程序在失败后继续处理,方法 BatchUpdateException.getUpdateCounts 返回的数组将包含批处理中每个命令的元素,而不仅仅是错误前成功执行的命令的元素。在驱动程序继续处理命令的情况下,任何失败命令的数组元素都是 Statement.EXECUTE_FAILED 。
JDBC 驱动程序实现应使用构造函数 BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts, Throwable cause) 而不是采用 int[] 作为更新计数的构造函数以避免溢出的可能性。
如果调用 Statement.executeLargeBatch 方法,建议调用 getLargeUpdateCounts 而不是 getUpdateCounts 以避免整数更新计数可能溢出。
- 自从:
- 1.2
- 参见:
-
构造方法总结
构造方法构造方法描述构造一个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(String reason, String SQLState, int vendorCode, long[] updateCounts, Throwable cause) 构造一个用给定的reason、SQLState、vendorCode、cause和updateCounts初始化的BatchUpdateException对象。BatchUpdateException(Throwable cause) 构造一个用给定的cause初始化的BatchUpdateException对象。 -
方法总结
修饰符和类型方法描述long[]检索在发生此异常之前成功执行的批量更新中每个更新语句的更新计数。int[]检索在发生此异常之前成功执行的批量更新中每个更新语句的更新计数。在类 java.sql.SQL异常 中声明的方法
getErrorCode, getNextException, getSQLState, iterator, setNextException在类 java.lang.Throwable 中声明的方法
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait在接口 java.lang.Iterable 中声明的方法
forEach, spliterator
-
构造方法详细信息
-
BatchUpdateException
构造一个用给定的reason、SQLState、vendorCode和updateCounts初始化的BatchUpdateException对象。cause未初始化,随后可能会通过调用Throwable.initCause(java.lang.Throwable)方法进行初始化。Note: 没有对
updateCounts进行溢出验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts, Throwable cause)。- 参数:
reason- 错误描述SQLState- 标识异常的 XOPEN 或 SQL:2003 代码vendorCode- 特定数据库供应商使用的异常代码updateCounts-int的数组,每个元素指示更新计数,Statement.SUCCESS_NO_INFO或Statement.EXECUTE_FAILED用于批处理中的每个 SQL 命令,用于在命令失败后继续处理的 JDBC 驱动程序;对于在命令失败后停止处理的 JDBC 驱动程序,失败前批处理中每个 SQL 命令的更新计数或Statement.SUCCESS_NO_INFO- 自从:
- 1.2
- 参见:
-
BatchUpdateException
构造一个用给定的reason、SQLState和updateCounts初始化的BatchUpdateException对象。cause未初始化,随后可能会通过调用Throwable.initCause(java.lang.Throwable)方法进行初始化。供应商代码初始化为 0。Note: 没有对
updateCounts进行溢出验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts, Throwable cause)。- 参数:
reason- 异常的描述SQLState- 标识异常的 XOPEN 或 SQL:2003 代码updateCounts-int的数组,每个元素指示更新计数,Statement.SUCCESS_NO_INFO或Statement.EXECUTE_FAILED用于批处理中的每个 SQL 命令,用于在命令失败后继续处理的 JDBC 驱动程序;对于在命令失败后停止处理的 JDBC 驱动程序,失败前批处理中每个 SQL 命令的更新计数或Statement.SUCCESS_NO_INFO- 自从:
- 1.2
- 参见:
-
BatchUpdateException
构造一个用给定的reason和updateCounts初始化的BatchUpdateException对象。cause未初始化,随后可能会通过调用Throwable.initCause(java.lang.Throwable)方法进行初始化。SQLState初始化为null,供应商代码初始化为 0。Note: 没有对
updateCounts进行溢出验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts, Throwable cause)。- 参数:
reason- 异常的描述updateCounts-int的数组,每个元素指示更新计数,Statement.SUCCESS_NO_INFO或Statement.EXECUTE_FAILED用于批处理中的每个 SQL 命令,用于在命令失败后继续处理的 JDBC 驱动程序;对于在命令失败后停止处理的 JDBC 驱动程序,失败前批处理中每个 SQL 命令的更新计数或Statement.SUCCESS_NO_INFO- 自从:
- 1.2
- 参见:
-
BatchUpdateException
public BatchUpdateException(int[] updateCounts) 构造一个用给定的updateCounts初始化的BatchUpdateException对象。通过调用Throwable.initCause(java.lang.Throwable)方法进行初始化。reason和SQLState被初始化为空,供应商代码被初始化为 0。Note: 没有对
updateCounts进行溢出验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts, Throwable cause)。- 参数:
updateCounts-int的数组,每个元素指示更新计数,Statement.SUCCESS_NO_INFO或Statement.EXECUTE_FAILED用于批处理中的每个 SQL 命令,用于在命令失败后继续处理的 JDBC 驱动程序;对于在命令失败后停止处理的 JDBC 驱动程序,失败前批处理中每个 SQL 命令的更新计数或Statement.SUCCESS_NO_INFO- 自从:
- 1.2
- 参见:
-
BatchUpdateException
public BatchUpdateException()构造一个BatchUpdateException对象。reason、SQLState和updateCounts被初始化为null,供应商代码被初始化为 0。cause没有被初始化,随后可以通过调用Throwable.initCause(java.lang.Throwable)方法来初始化。- 自从:
- 1.2
- 参见:
-
BatchUpdateException
构造一个用给定的cause初始化的BatchUpdateException对象。SQLState和updateCounts被初始化为null并且供应商代码被初始化为 0。reason被初始化为nullifcause==null或cause.toString()ifcause!=null。- 参数:
cause- 此SQLException的根本原因(保存以供以后通过getCause()方法检索);可能为空,表示原因不存在或未知。- 自从:
- 1.6
- 参见:
-
BatchUpdateException
构造一个用给定的cause和updateCounts初始化的BatchUpdateException对象。SQLState初始化为null,供应商代码初始化为 0。reason初始化为null(如果是cause==null)或cause.toString()(如果是cause!=null)。Note: 没有对
updateCounts进行溢出验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts, Throwable cause)。- 参数:
updateCounts-int的数组,每个元素指示更新计数,Statement.SUCCESS_NO_INFO或Statement.EXECUTE_FAILED用于批处理中的每个 SQL 命令,用于在命令失败后继续处理的 JDBC 驱动程序;对于在命令失败后停止处理的 JDBC 驱动程序,失败前批处理中每个 SQL 命令的更新计数或Statement.SUCCESS_NO_INFOcause- 此SQLException的根本原因(保存以供以后通过getCause()方法检索);可能为空,表示原因不存在或未知。- 自从:
- 1.6
- 参见:
-
BatchUpdateException
构造一个用给定的reason、cause和updateCounts初始化的BatchUpdateException对象。SQLState初始化为null,供应商代码初始化为 0。Note: 没有对
updateCounts进行溢出验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts, Throwable cause)。- 参数:
reason- 异常的描述updateCounts-int的数组,每个元素指示更新计数,Statement.SUCCESS_NO_INFO或Statement.EXECUTE_FAILED用于批处理中的每个 SQL 命令,用于在命令失败后继续处理的 JDBC 驱动程序;对于在命令失败后停止处理的 JDBC 驱动程序,失败前批处理中每个 SQL 命令的更新计数或Statement.SUCCESS_NO_INFOcause- 此SQLException的根本原因(保存以供以后通过getCause()方法检索);可能为空,表示原因不存在或未知。- 自从:
- 1.6
- 参见:
-
BatchUpdateException
构造一个用给定的reason、SQLState、cause和updateCounts初始化的BatchUpdateException对象。供应商代码初始化为 0。- 参数:
reason- 异常的描述SQLState- 标识异常的 XOPEN 或 SQL:2003 代码updateCounts-int的数组,每个元素指示更新计数,Statement.SUCCESS_NO_INFO或Statement.EXECUTE_FAILED用于批处理中的每个 SQL 命令,用于在命令失败后继续处理的 JDBC 驱动程序;对于在命令失败后停止处理的 JDBC 驱动程序,失败前批处理中每个 SQL 命令的更新计数或Statement.SUCCESS_NO_INFONote: 没有对
updateCounts进行溢出验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts, Throwable cause)。cause- 此SQLException的根本原因(保存以供以后通过getCause()方法检索);可能为空,表示原因不存在或未知。- 自从:
- 1.6
- 参见:
-
BatchUpdateException
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的数组,每个元素指示更新计数,Statement.SUCCESS_NO_INFO或Statement.EXECUTE_FAILED用于批处理中的每个 SQL 命令,用于在命令失败后继续处理的 JDBC 驱动程序;对于在命令失败后停止处理的 JDBC 驱动程序,失败前批处理中每个 SQL 命令的更新计数或Statement.SUCCESS_NO_INFONote: 没有对
updateCounts进行溢出验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts, Throwable cause)。cause- 此SQLException的根本原因(保存以供以后通过getCause()方法检索);可能为空,表示原因不存在或未知。- 自从:
- 1.6
- 参见:
-
BatchUpdateException
public BatchUpdateException(String reason, String SQLState, int vendorCode, long[] updateCounts, Throwable cause) 构造一个用给定的reason、SQLState、vendorCode、cause和updateCounts初始化的BatchUpdateException对象。当返回的更新计数可能超过
Integer.MAX_VALUE时,应使用此构造函数。- 参数:
reason- 错误描述SQLState- 标识异常的 XOPEN 或 SQL:2003 代码vendorCode- 特定数据库供应商使用的异常代码updateCounts-long的数组,每个元素指示更新计数,Statement.SUCCESS_NO_INFO或Statement.EXECUTE_FAILED用于 JDBC 驱动程序在命令失败后继续处理的批处理中的每个 SQL 命令;对于在命令失败后停止处理的 JDBC 驱动程序,失败前批处理中每个 SQL 命令的更新计数或Statement.SUCCESS_NO_INFOcause- 此SQLException的根本原因(保存以供以后通过getCause()方法检索);可能为空,表示原因不存在或未知。- 自从:
- 1.8
-
-
方法详情
-
getUpdateCounts
public int[] getUpdateCounts()检索在发生此异常之前成功执行的批量更新中每个更新语句的更新计数。当其中一个命令未能正确执行时,实现批量更新的驱动程序可能会或可能不会继续处理批处理中的其余命令。如果驱动程序继续处理命令,则此方法返回的数组将包含与批处理中的命令一样多的元素;否则,它将包含在抛出BatchUpdateException之前成功执行的每个命令的更新计数。此方法的可能返回值已针对 Java 2 SDK,标准版,版本 1.3 进行了修改。这样做是为了适应在抛出
BatchUpdateException对象后继续处理批量更新中的命令的新选项。- 返回:
-
一个
int数组,其中包含在此错误发生之前成功执行的更新的更新计数。或者,如果驱动程序在出错后继续处理命令,则批处理中的每个命令都执行以下操作之一:- 更新计数
Statement.SUCCESS_NO_INFO表示命令执行成功但受影响的行数未知Statement.EXECUTE_FAILED表示命令未能成功执行
- 自从:
- 1.3
- 参见:
-
getLargeUpdateCounts
public long[] getLargeUpdateCounts()检索在发生此异常之前成功执行的批量更新中每个更新语句的更新计数。当其中一个命令未能正确执行时,实现批量更新的驱动程序可能会或可能不会继续处理批处理中的其余命令。如果驱动程序继续处理命令,则此方法返回的数组将包含与批处理中的命令一样多的元素;否则,它将包含在抛出BatchUpdateException之前成功执行的每个命令的更新计数。当调用
Statement.executeLargeBatch并且返回的更新计数可能超过Integer.MAX_VALUE时,应使用此方法。- 返回:
-
一个
long数组,其中包含在发生此错误之前成功执行的更新的更新计数。或者,如果驱动程序在出错后继续处理命令,则批处理中的每个命令都执行以下操作之一:- 更新计数
Statement.SUCCESS_NO_INFO表示命令执行成功但受影响的行数未知Statement.EXECUTE_FAILED表示命令未能成功执行
- 自从:
- 1.8
-