AI-generated Key Takeaways
-
BatchUpdateExceptionis a subclass ofSQLExceptionsignaling errors during JDBC batch updates, providing update counts for successful commands before the error and potentially for all commands depending on the driver. -
Drivers may continue or halt batch processing after an error, impacting the update counts returned by
getUpdateCounts(), which can includeStatement.EXECUTE_FAILEDfor failures. -
BatchUpdateExceptionoffers constructors with varying levels of detail for the error reason, SQLState, vendor code, update counts, and underlying cause. -
getUpdateCounts()retrieves an array of integers representing update counts for each statement, withStatement.SUCCESS_NO_INFOorStatement.EXECUTE_FAILEDpotentially included based on driver behavior and command outcomes. -
The exception provides detailed information like reason, SQLState, vendor code, update counts, and cause to aid in diagnosing batch update issues.
The subclass of SQLException thrown when an error
occurs during a batch update operation. In addition to the
information provided by SQLException, a
BatchUpdateException provides the update
counts for all commands that were executed successfully during the
batch update, that is, all commands that were executed before the error
occurred. The order of elements in an array of update counts
corresponds to the order in which commands were added to the batch.
After a command in a batch update fails to execute properly
and a BatchUpdateException is thrown, the driver
may or may not continue to process the remaining commands in
the batch. If the driver continues processing after a failure,
the array returned by the method
BatchUpdateException.getUpdateCounts will have
an element for every command in the batch rather than only
elements for the commands that executed successfully before
the error. In the case where the driver continues processing
commands, the array element for any command
that failed is Statement.EXECUTE_FAILED.
Public Constructor Summary
|
BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts)
Constructs a
BatchUpdateException object initialized with a given
reason, SQLState, vendorCode and
updateCounts. |
|
|
BatchUpdateException(String reason, String SQLState, int[] updateCounts)
Constructs a
BatchUpdateException object initialized with a given
reason, SQLState and
updateCounts. |
|
|
BatchUpdateException(String reason, int[] updateCounts)
Constructs a
BatchUpdateException object initialized with a given
reason and updateCounts. |
|
|
BatchUpdateException(int[] updateCounts)
Constructs a
BatchUpdateException object initialized with a given
updateCounts. |
|
|
BatchUpdateException()
Constructs a
BatchUpdateException object. |
|
|
BatchUpdateException(Throwable cause)
Constructs a
BatchUpdateException object initialized with
a given cause. |
|
|
BatchUpdateException(int[] updateCounts, Throwable cause)
Constructs a
BatchUpdateException object initialized with a
given cause and updateCounts. |
|
|
BatchUpdateException(String reason, int[] updateCounts, Throwable cause)
Constructs a
BatchUpdateException object initialized with
a given reason, cause
and updateCounts. |
|
|
BatchUpdateException(String reason, String SQLState, int[] updateCounts, Throwable cause)
Constructs a
BatchUpdateException object initialized with
a given reason, SQLState,cause, and
updateCounts. |
|
|
BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts, Throwable cause)
Constructs a
BatchUpdateException object initialized with
a given reason, SQLState, vendorCode
cause and updateCounts. |
Public Method Summary
| int[] |
getUpdateCounts()
Retrieves the update count for each update statement in the batch
update that executed successfully before this exception occurred.
|
Inherited Method Summary
Public Constructors
public BatchUpdateException (String reason, String SQLState, int vendorCode, int[] updateCounts)
Constructs a BatchUpdateException object initialized with a given
reason, SQLState, vendorCode and
updateCounts.
The cause is not initialized, and may subsequently be
initialized by a call to the
Throwable.initCause(java.lang.Throwable) method.
Parameters
| reason | a description of the error |
|---|---|
| SQLState | an XOPEN or SQL:2003 code identifying the exception |
| vendorCode | an exception code used by a particular database vendor |
| updateCounts | an array of int, with each element
indicating the update count, Statement.SUCCESS_NO_INFO or
Statement.EXECUTE_FAILED for each SQL command in
the batch for JDBC drivers that continue processing
after a command failure; an update count or
Statement.SUCCESS_NO_INFO for each SQL command in the batch
prior to the failure for JDBC drivers that stop processing after a command
failure |
public BatchUpdateException (String reason, String SQLState, int[] updateCounts)
Constructs a BatchUpdateException object initialized with a given
reason, SQLState and
updateCounts.
The cause is not initialized, and may subsequently be
initialized by a call to the
Throwable.initCause(java.lang.Throwable) method. The vendor code
is initialized to 0.
Parameters
| reason | a description of the exception |
|---|---|
| SQLState | an XOPEN or SQL:2003 code identifying the exception |
| updateCounts | an array of int, with each element
indicating the update count, Statement.SUCCESS_NO_INFO or
Statement.EXECUTE_FAILED for each SQL command in
the batch for JDBC drivers that continue processing
after a command failure; an update count or
Statement.SUCCESS_NO_INFO for each SQL command in the batch
prior to the failure for JDBC drivers that stop processing after a command
failure |
public BatchUpdateException (String reason, int[] updateCounts)
Constructs a BatchUpdateException object initialized with a given
reason and updateCounts.
The cause is not initialized, and may subsequently be
initialized by a call to the
Throwable.initCause(java.lang.Throwable) method. The
SQLState is initialized to null
and the vender code is initialized to 0.
Parameters
| reason | a description of the exception |
|---|---|
| updateCounts | an array of int, with each element
indicating the update count, Statement.SUCCESS_NO_INFO or
Statement.EXECUTE_FAILED for each SQL command in
the batch for JDBC drivers that continue processing
after a command failure; an update count or
Statement.SUCCESS_NO_INFO for each SQL command in the batch
prior to the failure for JDBC drivers that stop processing after a command
failure |
public BatchUpdateException (int[] updateCounts)
Constructs a BatchUpdateException object initialized with a given
updateCounts.
initialized by a call to the
Throwable.initCause(java.lang.Throwable) method. The reason
and SQLState are initialized to null and the vendor code
is initialized to 0.
Parameters
| updateCounts | an array of int, with each element
indicating the update count, Statement.SUCCESS_NO_INFO or
Statement.EXECUTE_FAILED for each SQL command in
the batch for JDBC drivers that continue processing
after a command failure; an update count or
Statement.SUCCESS_NO_INFO for each SQL command in the batch
prior to the failure for JDBC drivers that stop processing after a command
failure |
|---|
public BatchUpdateException ()
Constructs a BatchUpdateException object.
The reason, SQLState and updateCounts
are initialized to null and the vendor code is initialized to 0.
The cause is not initialized, and may subsequently be
initialized by a call to the
Throwable.initCause(java.lang.Throwable) method.
public BatchUpdateException (Throwable cause)
Constructs a BatchUpdateException object initialized with
a given cause.
The SQLState and updateCounts
are initialized
to null and the vendor code is initialized to 0.
The reason is initialized to null if
cause==null or to cause.toString() if
cause!=null.
Parameters
| cause | the underlying reason for this SQLException
(which is saved for later retrieval by the getCause() method);
may be null indicating the cause is non-existent or unknown. |
|---|
public BatchUpdateException (int[] updateCounts, Throwable cause)
Constructs a BatchUpdateException object initialized with a
given cause and updateCounts.
The SQLState is initialized
to null and the vendor code is initialized to 0.
The reason is initialized to null if
cause==null or to cause.toString() if
cause!=null.
Parameters
| updateCounts | an array of int, with each element
indicating the update count, Statement.SUCCESS_NO_INFO or
Statement.EXECUTE_FAILED for each SQL command in
the batch for JDBC drivers that continue processing
after a command failure; an update count or
Statement.SUCCESS_NO_INFO for each SQL command in the batch
prior to the failure for JDBC drivers that stop processing after a command
failure |
|---|---|
| cause | the underlying reason for this SQLException
(which is saved for later retrieval by the getCause() method); may be null indicating
the cause is non-existent or unknown. |
public BatchUpdateException (String reason, int[] updateCounts, Throwable cause)
Constructs a BatchUpdateException object initialized with
a given reason, cause
and updateCounts. The SQLState is initialized
to null and the vendor code is initialized to 0.
Parameters
| reason | a description of the exception |
|---|---|
| updateCounts | an array of int, with each element
indicating the update count, Statement.SUCCESS_NO_INFO or
Statement.EXECUTE_FAILED for each SQL command in
the batch for JDBC drivers that continue processing
after a command failure; an update count or
Statement.SUCCESS_NO_INFO for each SQL command in the batch
prior to the failure for JDBC drivers that stop processing after a command
failure |
| cause | the underlying reason for this SQLException (which is saved for later retrieval by the getCause() method);
may be null indicating
the cause is non-existent or unknown. |
public BatchUpdateException (String reason, String SQLState, int[] updateCounts, Throwable cause)
Constructs a BatchUpdateException object initialized with
a given reason, SQLState,cause, and
updateCounts. The vendor code is initialized to 0.
Parameters
| reason | a description of the exception |
|---|---|
| SQLState | an XOPEN or SQL:2003 code identifying the exception |
| updateCounts | an array of int, with each element
indicating the update count, Statement.SUCCESS_NO_INFO or
Statement.EXECUTE_FAILED for each SQL command in
the batch for JDBC drivers that continue processing
after a command failure; an update count or
Statement.SUCCESS_NO_INFO for each SQL command in the batch
prior to the failure for JDBC drivers that stop processing after a command
failure |
| cause | the underlying reason for this SQLException (which is saved for later retrieval by the getCause() method);
may be null indicating
the cause is non-existent or unknown. |
public BatchUpdateException (String reason, String SQLState, int vendorCode, int[] updateCounts, Throwable cause)
Constructs a BatchUpdateException object initialized with
a given reason, SQLState, vendorCode
cause and updateCounts.
Parameters
| reason | a description of the error |
|---|---|
| SQLState | an XOPEN or SQL:2003 code identifying the exception |
| vendorCode | an exception code used by a particular database vendor |
| updateCounts | an array of int, with each element
indicating the update count, Statement.SUCCESS_NO_INFO or
Statement.EXECUTE_FAILED for each SQL command in
the batch for JDBC drivers that continue processing
after a command failure; an update count or
Statement.SUCCESS_NO_INFO for each SQL command in the batch
prior to the failure for JDBC drivers that stop processing after a command
failure |
| cause | the underlying reason for this SQLException (which is saved for later retrieval by the getCause() method);
may be null indicating
the cause is non-existent or unknown. |
Public Methods
public int[] getUpdateCounts ()
Retrieves the update count for each update statement in the batch
update that executed successfully before this exception occurred.
A driver that implements batch updates may or may not continue to
process the remaining commands in a batch when one of the commands
fails to execute properly. If the driver continues processing commands,
the array returned by this method will have as many elements as
there are commands in the batch; otherwise, it will contain an
update count for each command that executed successfully before
the BatchUpdateException was thrown.
The possible return values for this method were modified for
the Java 2 SDK, Standard Edition, version 1.3. This was done to
accommodate the new option of continuing to process commands
in a batch update after a BatchUpdateException object
has been thrown.
Returns
- an array of
intcontaining the update counts for the updates that were executed successfully before this error occurred. Or, if the driver continues to process commands after an error, one of the following for every command in the batch:- an update count
Statement.SUCCESS_NO_INFOto indicate that the command executed successfully but the number of rows affected is unknownStatement.EXECUTE_FAILEDto indicate that the command failed to execute successfully