java.sql

接口
异常
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