- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- java.sql.SQLException
-
- java.sql.BatchUpdateException
-
- 实现的所有接口
-
Serializable
,Iterable<Throwable>
public class BatchUpdateException extends SQLException
批处理更新操作期间发生错误时抛出SQLException
的子类。 除了BatchUpdateException
提供的信息之外 ,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
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 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)
构造一个BatchUpdateException
与给定的初始化的对象reason
,cause
和updateCounts
。BatchUpdateException(String reason, String SQLState, int[] updateCounts)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
和updateCounts
。BatchUpdateException(String reason, String SQLState, int[] updateCounts, Throwable cause)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
,cause
,和updateCounts
。BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
,vendorCode
和updateCounts
。BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts, Throwable cause)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
,vendorCode
cause
和updateCounts
。BatchUpdateException(String reason, String SQLState, int vendorCode, long[] updateCounts, Throwable cause)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
,vendorCode
cause
和updateCounts
。BatchUpdateException(Throwable cause)
构造一个用给定的cause
初始化的BatchUpdateException
对象。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 long[]
getLargeUpdateCounts()
检索在发生此异常之前成功执行的批处理更新中的每个更新语句的更新计数。int[]
getUpdateCounts()
检索在发生此异常之前成功执行的批处理更新中的每个更新语句的更新计数。-
声明方法的类 java.sql.SQLException
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
public BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
,vendorCode
和updateCounts
。cause
未初始化,随后可通过调用Throwable.initCause(java.lang.Throwable)
方法进行初始化。注意:没有溢出
updateCounts
验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts,Throwable cause)
。- 参数
-
reason
- 错误的描述 -
SQLState
- 标识异常的XOPEN或SQL:2003代码 -
vendorCode
- 特定数据库供应商使用的异常代码 -
updateCounts
- 数组int
,其中每个元素指示Statement.EXECUTE_FAILED
中的每个SQL命令,在命令失败后继续处理的JDBC驱动程序;Statement.SUCCESS_NO_INFO
或Statement.EXECUTE_FAILED
; 在命令失败后停止处理的JDBC驱动程序失败之前,批处理中每个SQL命令的更新计数或Statement.SUCCESS_NO_INFO
- 从以下版本开始:
- 1.2
- 另请参见:
-
BatchUpdateException(java.lang.String, java.lang.String, int, long[], java.lang.Throwable)
-
BatchUpdateException
public BatchUpdateException(String reason, String SQLState, int[] updateCounts)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
和updateCounts
。cause
未初始化,随后可通过调用Throwable.initCause(java.lang.Throwable)
方法进行初始化。 供应商代码初始化为0。注意:没有溢出
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(java.lang.String, java.lang.String, int, long[], java.lang.Throwable)
-
BatchUpdateException
public BatchUpdateException(String reason, int[] updateCounts)
构造使用给定的reason
和updateCounts
初始化的BatchUpdateException
对象。cause
未初始化,随后可通过调用Throwable.initCause(java.lang.Throwable)
方法进行初始化。SQLState
初始化为null
,供应商代码初始化为0。注意:没有溢出
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(java.lang.String, java.lang.String, int, long[], java.lang.Throwable)
-
BatchUpdateException
public BatchUpdateException(int[] updateCounts)
构造使用给定的updateCounts
初始化的BatchUpdateException
对象。 通过调用Throwable.initCause(java.lang.Throwable)
方法初始化。reason
和SQLState
初始化为null,供应商代码初始化为0。注意:溢出没有
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(java.lang.String, java.lang.String, int, long[], java.lang.Throwable)
-
BatchUpdateException
public BatchUpdateException()
构造一个BatchUpdateException
对象。 的reason
,SQLState
和updateCounts
被初始化为null
,供应商代码被初始化为0。cause
没有初始化,随后可以通过向一个呼叫进行初始化Throwable.initCause(java.lang.Throwable)
方法。
-
BatchUpdateException
public BatchUpdateException(Throwable cause)
构造用给定的cause
初始化的BatchUpdateException
对象。 所述SQLState
和updateCounts
被初始化为null
,供应商代码被初始化为0。reason
被初始化为null
如果cause==null
或cause.toString()
如果cause!=null
。- 参数
-
cause
- 此SQLException
的基本原因(保存以供以后通过getCause()
方法检索); 可以为空,表示原因不存在或未知。 - 从以下版本开始:
- 1.6
- 另请参见:
-
BatchUpdateException(java.lang.String, java.lang.String, int, long[], java.lang.Throwable)
-
BatchUpdateException
public BatchUpdateException(int[] updateCounts, Throwable cause)
构造使用给定的cause
和updateCounts
初始化的BatchUpdateException
对象。 该SQLState
被初始化为null
,供应商代码被初始化为0。reason
被初始化为null
如果cause==null
或cause.toString()
如果cause!=null
。注意:溢出没有
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
-
cause
- 此SQLException
的基本原因(保存以供以后通过getCause()
方法检索); 可以为空,表示原因不存在或未知。 - 从以下版本开始:
- 1.6
- 另请参见:
-
BatchUpdateException(java.lang.String, java.lang.String, int, long[], java.lang.Throwable)
-
BatchUpdateException
public BatchUpdateException(String reason, int[] updateCounts, Throwable cause)
构造一个BatchUpdateException
与给定的初始化的对象reason
,cause
和updateCounts
。SQLState
初始化为null
,供应商代码初始化为0。注意:溢出没有
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
-
cause
- 此SQLException
的基本原因(保存以供以后通过getCause()
方法检索); 可以为空,表示原因不存在或未知。 - 从以下版本开始:
- 1.6
- 另请参见:
-
BatchUpdateException(java.lang.String, java.lang.String, int, long[], java.lang.Throwable)
-
BatchUpdateException
public BatchUpdateException(String reason, String SQLState, int[] updateCounts, Throwable cause)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
,cause
,和updateCounts
。 供应商代码初始化为0。- 参数
-
reason
- 异常的描述 -
SQLState
- 标识异常的XOPEN或SQL:2003代码 -
updateCounts
- 数组int
,每个元素指示更新计数,Statement.SUCCESS_NO_INFO
或Statement.EXECUTE_FAILED
用于批处理中的每个SQL命令,用于在命令失败后继续处理的JDBC驱动程序; 在命令失败后停止处理的JDBC驱动程序失败之前,批处理中每个SQL命令的更新计数或Statement.SUCCESS_NO_INFO
注意:没有溢出
updateCounts
验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts,Throwable cause)
。 -
cause
- 此SQLException
的基本原因(保存以供以后通过getCause()
方法检索); 可以为空,表示原因不存在或未知。 - 从以下版本开始:
- 1.6
- 另请参见:
-
BatchUpdateException(java.lang.String, java.lang.String, int, long[], java.lang.Throwable)
-
BatchUpdateException
public BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts, Throwable cause)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
,vendorCode
cause
和updateCounts
。- 参数
-
reason
- 错误的描述 -
SQLState
- 标识异常的XOPEN或SQL:2003代码 -
vendorCode
- 特定数据库供应商使用的异常代码 -
updateCounts
- 数组int
,其中每个元素指示Statement.EXECUTE_FAILED
中的每个SQL命令,在命令失败后继续处理的JDBC驱动程序;Statement.SUCCESS_NO_INFO
或Statement.EXECUTE_FAILED
; 在命令失败后停止处理的JDBC驱动程序失败之前,批处理中每个SQL命令的更新计数或Statement.SUCCESS_NO_INFO
注意:溢出没有
updateCounts
验证,因此建议您使用构造函数BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts,Throwable cause)
。 -
cause
- 此SQLException
的基本原因(保存以供以后通过getCause()
方法检索); 可以为空,表示原因不存在或未知。 - 从以下版本开始:
- 1.6
- 另请参见:
-
BatchUpdateException(java.lang.String, java.lang.String, int, long[], java.lang.Throwable)
-
BatchUpdateException
public BatchUpdateException(String reason, String SQLState, int vendorCode, long[] updateCounts, Throwable cause)
构造一个BatchUpdateException
与给定的初始化的对象reason
,SQLState
,vendorCode
cause
和updateCounts
。当返回的更新计数可能超过
Integer.MAX_VALUE
时,应使用此构造函数。- 参数
-
reason
- 错误的描述 -
SQLState
- 标识异常的XOPEN或SQL:2003代码 -
vendorCode
- 特定数据库供应商使用的异常代码 -
updateCounts
- 数组long
,每个元素指示更新计数,Statement.SUCCESS_NO_INFO
或Statement.EXECUTE_FAILED
用于批处理中的每个SQL命令,用于在命令失败后继续处理的JDBC驱动程序; 对于在命令失败后停止处理的JDBC驱动程序失败之前批处理中的每个SQL命令的更新计数或Statement.SUCCESS_NO_INFO
-
cause
- 此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()
-
getLargeUpdateCounts
public long[] getLargeUpdateCounts()
检索在发生此异常之前成功执行的批处理更新中的每个更新语句的更新计数。 当其中一个命令无法正确执行时,实现批量更新的驱动程序可能会也可能不会继续处理批处理中的其余命令。 如果驱动程序继续处理命令,则此方法返回的数组将包含与批处理中的命令一样多的元素; 否则,它将包含在抛出BatchUpdateException
之前成功执行的每个命令的更新计数。调用
Statement.executeLargeBatch
并且返回的更新计数可能超过Integer.MAX_VALUE
时,应使用此方法。- 结果
-
一个
long
的数组,包含在发生此错误之前已成功执行的更新的更新计数。 或者,如果驱动程序在发生错误后继续处理命令,则批处理中的每个命令都会执行以下操作之一:- 更新计数
-
Statement.SUCCESS_NO_INFO
表示命令执行成功但受影响的行数未知 -
Statement.EXECUTE_FAILED
表示命令未能成功执行
- 从以下版本开始:
- 1.8
-
-