- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- java.sql.SQLException
-
- java.sql.BatchUpdateException
-
- All Implemented Interfaces:
-
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)
而不是使用构建BatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts,Throwable cause)
来获取int[]
的更新计数,以避免溢出的可能性。如果调用
Statement.executeLargeBatch
方法,建议您调用getLargeUpdateCounts
而不是getUpdateCounts
,以避免整数更新计数的可能溢出。- 从以下版本开始:
- 1.2
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 BatchUpdateException()
构造一个BatchUpdateException
对象。BatchUpdateException(int[] updateCounts)
构造一个BatchUpdateException
对象,使用给定的updateCounts
初始化。BatchUpdateException(int[] updateCounts, Throwable cause)
构造一个BatchUpdateException
对象,初始化为给定的cause
和updateCounts
。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)
构造一个BatchUpdateException
对象,初始化为给定的cause
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 long[]
getLargeUpdateCounts()
检索在发生此异常之前成功执行的批量更新中每个更新语句的更新计数。int[]
getUpdateCounts()
检索在发生此异常之前成功执行的批量更新中每个更新语句的更新计数。-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from class java.sql.SQLException
getErrorCode, getNextException, getSQLState, iterator, setNextException
-
Methods inherited from class java.lang.Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
-
-
-
-
构造方法详细信息
-
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.SUCCESS_NO_INFO
或Statement.EXECUTE_FAILED
在批次JDBC驱动程序继续命令失败后处理中的每个SQL命令; 在命令失败后停止处理的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
在批次JDBC驱动程序继续命令失败后处理中的每个SQL命令; 在命令失败后停止处理的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)
构造一个BatchUpdateException
对象,该对象使用给定的reason
和updateCounts
初始化。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
在批次JDBC驱动程序继续命令失败后处理中的每个SQL命令; 在命令失败后停止处理的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)
构造一个BatchUpdateException
对象,初始化为给定的updateCounts
。 通过调用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
在批次JDBC驱动程序继续命令失败后处理中的每个SQL命令; 在命令失败后停止处理的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)
构造一个BatchUpdateException
对象,使用给定的cause
初始化。 的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)
构造一个BatchUpdateException
对象,该对象使用给定的cause
和updateCounts
初始化。 该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
在批次JDBC驱动程序继续命令失败后处理中的每个SQL命令; 在命令失败后停止处理的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
在批次JDBC驱动程序继续命令失败后处理中的每个SQL命令; 在命令失败后停止处理的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
在批次JDBC驱动程序继续命令失败后处理中的每个SQL命令; 在命令失败后停止处理的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.SUCCESS_NO_INFO
或Statement.EXECUTE_FAILED
在批次JDBC驱动程序继续命令失败后处理中的每个SQL命令; 在命令失败后停止处理的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
在批次JDBC驱动程序继续命令失败后处理中的每个SQL命令; 在命令失败后停止处理的JDBC驱动程序发生故障之前,批处理中的每个SQL命令的更新计数或Statement.SUCCESS_NO_INFO
-
cause
- 这个SQLException
的基本原因(由getCause()
方法保存供以后检索); 可能为空,表示原因不存在或未知。 - 从以下版本开始:
- 1.8
-
-
方法详细信息
-
getUpdateCounts
public int[] getUpdateCounts()
检索在发生此异常之前成功执行的批量更新中每个更新语句的更新计数。 当其中一个命令无法正常执行时,实现批量更新的驱动程序可能会或可能不会继续处理其他命令。 如果驱动程序继续处理命令,则此方法返回的数组将具有与批处理中的命令一样多的元素; 否则,它将包含在抛出BatchUpdateException
之前成功执行的每个命令的更新计数。针对Java 2 SDK(Standard Edition,版本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
-
-