Класс BatchUpdateException
- Все реализованные интерфейсы:
-
Serializable,Iterable<Throwable>
public class BatchUpdateException extends SQLException
SQLException, выбрасываемый при ошибке во время операции пакетного обновления. В дополнение к информации, предоставляемой SQLException, массив BatchUpdateException содержит количество обновлений для всех команд, успешно выполненных во время пакетного обновления, то есть всех команд, выполненных до возникновения ошибки. Порядок элементов в массиве с количеством обновлений соответствует порядку добавления команд в пакет. После того, как команда в пакетном обновлении не выполняется должным образом, и выбрасывается BatchUpdateException, драйвер может или не может продолжить обработку оставшихся команд в пакете. Если драйвер продолжает обработку после ошибки, массив, возвращаемый методом BatchUpdateException.getUpdateCounts, будет содержать элемент для каждой команды в пакете, а не только для команд, успешно выполненных перед ошибкой. В случае, если драйвер продолжает обработку команд, элемент массива для любой невыполненной команды равен Statement.EXECUTE_FAILED.
Реализация JDBC-драйвера должна использовать конструктор BatchUpdateException(String reason, String SQLState,
int vendorCode, long []updateCounts,Throwable cause) вместо конструкторов, принимающих int[] для количества обновлений, чтобы избежать возможности переполнения.
Если вызывается метод Statement.executeLargeBatch, рекомендуется вместо вызова getUpdateCounts использовать getLargeUpdateCounts, чтобы избежать возможного переполнения целого числа количества обновлений.
- С момента:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
BatchUpdateException() |
Создает объект BatchUpdateException. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным updateCounts. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным cause и updateCounts. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным reason и updateCounts. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным reason, cause и updateCounts. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным reason, SQLState и updateCounts. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным reason, SQLState, cause и updateCounts. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным reason, SQLState, vendorCode и updateCounts. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным reason, SQLState, vendorCode cause и updateCounts. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным reason, SQLState, vendorCode cause и updateCounts. |
BatchUpdateException |
Создает объект BatchUpdateException, инициализированный заданным cause. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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.SUCCESS_NO_INFOилиStatement.EXECUTE_FAILEDдля каждой SQL-команды в пакете для JDBC-драйверов, которые продолжают обработку после сбоя команды; количество обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакете перед сбоем для JDBC-драйверов, которые останавливают обработку после сбоя команды - С:
- 1.2
- См. также:
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-драйверов, которые продолжают обработку после сбоя команды; количество обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакете перед сбоем для JDBC-драйверов, которые останавливают обработку после сбоя команды - С:
- 1.2
- См. также:
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для каждой SQL-команды в пакете для JDBC-драйверов, которые продолжают обработку после сбоя команды; количество обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакете перед сбоем для JDBC-драйверов, которые останавливают обработку после сбоя команды - С:
- 1.2
- См. также:
BatchUpdateException
public BatchUpdateException(int[] updateCounts)
BatchUpdateException с заданным updateCounts. 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-драйверов, которые продолжают обработку после сбоя команды; количество обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакете перед сбоем для JDBC-драйверов, которые останавливают обработку после сбоя команды - С:
- 1.2
- См. также:
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(); может быть null, что указывает на отсутствие или неизвестность причины. - С:
- 1.6
- См. также:
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для каждой SQL-команды в пакете для JDBC-драйверов, которые продолжают обработку после сбоя команды; количество обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакете перед сбоем для JDBC-драйверов, которые останавливают обработку после сбоя команды -
cause- причина этогоSQLException, которая сохраняется для последующего извлечения методомgetCause(); может быть null, что указывает на отсутствие или неизвестность причины. - С:
- 1.6
- См. также:
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-драйверов, которые продолжают обработку после сбоя команды; количество обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакете перед сбоем для JDBC-драйверов, которые останавливают обработку после сбоя команды -
cause- причина этогоSQLException, которая сохраняется для последующего извлечения методомgetCause(); может быть null, что указывает на отсутствие или неизвестность причины. - С:
- 1.6
- См. также:
BatchUpdateException
public BatchUpdateException(String reason, String SQLState, int[] updateCounts, Throwable cause)
BatchUpdateException с заданным reason, SQLState, cause, и updateCounts. Код поставщика инициализирован значением 0.- Parameters:
-
reason- описание исключения -
SQLState- код XOPEN или SQL:2003, идентифицирующий исключение -
updateCounts- массивint, каждый элемент которого указывает количество обновлённых строк,Statement.SUCCESS_NO_INFOилиStatement.EXECUTE_FAILEDдля каждой SQL команды в пакетной операции для JDBC драйверов, которые продолжают обработку после сбоя команды; количество обновлённых строк илиStatement.SUCCESS_NO_INFOдля каждой SQL команды в пакетной операции до сбоя для JDBC драйверов, которые прекращают обработку после сбоя команды.Примечание: Проверка
updateCountsна переполнение не выполняется, поэтому рекомендуется использовать конструкторBatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts,Throwable cause). -
cause- основная причина этогоSQLException(сохраняется для последующего извлечения методомgetCause()); может быть null, указывая на отсутствие или неизвестность причины. - Since:
- 1.6
- See Also:
BatchUpdateException
public BatchUpdateException(String reason, String SQLState, int vendorCode, int[] updateCounts, Throwable cause)
BatchUpdateException с заданным reason, SQLState, vendorCode cause и updateCounts. - Parameters:
-
reason- описание ошибки -
SQLState- код XOPEN или SQL:2003, идентифицирующий исключение -
vendorCode- код ошибки, используемый конкретным поставщиком базы данных -
updateCounts- массивint, каждый элемент которого указывает количество обновлённых строк,Statement.SUCCESS_NO_INFOилиStatement.EXECUTE_FAILEDдля каждой SQL команды в пакетной операции для JDBC драйверов, которые продолжают обработку после сбоя команды; количество обновлённых строк илиStatement.SUCCESS_NO_INFOдля каждой SQL команды в пакетной операции до сбоя для JDBC драйверов, которые прекращают обработку после сбоя команды.Примечание: Проверка
updateCountsна переполнение не выполняется, поэтому рекомендуется использовать конструкторBatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts,Throwable cause). -
cause- основная причина этогоSQLException(сохраняется для последующего извлечения методомgetCause()); может быть null, указывая на отсутствие или неизвестность причины. - Since:
- 1.6
- See Also:
BatchUpdateException
public BatchUpdateException(String reason, String SQLState, int vendorCode, long[] updateCounts, Throwable cause)
BatchUpdateException с заданным reason, SQLState, vendorCode cause и updateCounts.
Этот конструктор следует использовать, когда возвращаемое количество обновлений может превысить Integer.MAX_VALUE.
- Parameters:
-
reason- описание ошибки -
SQLState- код XOPEN или SQL:2003, идентифицирующий исключение -
vendorCode- код ошибки, используемый конкретным поставщиком базы данных -
updateCounts- массивlong, каждый элемент которого указывает количество обновлённых строк,Statement.SUCCESS_NO_INFOилиStatement.EXECUTE_FAILEDдля каждой SQL команды в пакетной операции для JDBC драйверов, которые продолжают обработку после сбоя команды; количество обновлённых строк илиStatement.SUCCESS_NO_INFOдля каждой SQL команды в пакетной операции до сбоя для JDBC драйверов, которые прекращают обработку после сбоя команды -
cause- основная причина этогоSQLException(сохраняется для последующего извлечения методомgetCause()); может быть null, указывая на отсутствие или неизвестность причины. - Since:
- 1.8
Методы
getUpdateCounts
public int[] getUpdateCounts()
BatchUpdateException.
Возможные возвращаемые значения для этого метода были изменены для Java 2 SDK, Standard Edition, версии 1.3. Это было сделано для поддержки новой возможности продолжения обработки команд в пакетном обновлении после того, как был брошен объект BatchUpdateException.
- Returns:
- массив
intсодержащий количество обновлённых строк для обновлений, выполненных успешно до возникновения ошибки. Или, если драйвер продолжает обрабатывать команды после ошибки, одно из следующих значений для каждой команды в пакетной операции:- количество обновлённых строк
-
Statement.SUCCESS_NO_INFOдля указания, что команда выполнилась успешно, но количество затронутых строк неизвестно -
Statement.EXECUTE_FAILEDдля указания, что команда не была успешно выполнена
- Since:
- 1.3
- See Also:
getLargeUpdateCounts
public long[] getLargeUpdateCounts()
BatchUpdateException.
Этот метод следует использовать, когда Statement.executeLargeBatch вызывается, и возвращаемое количество обновлений может превысить Integer.MAX_VALUE.
- Returns:
- массив
longсодержащий количество обновлённых строк для обновлений, выполненных успешно до возникновения ошибки. Или, если драйвер продолжает обрабатывать команды после ошибки, одно из следующих значений для каждой команды в пакетной операции:- количество обновлённых строк
-
Statement.SUCCESS_NO_INFOдля указания, что команда выполнилась успешно, но количество затронутых строк неизвестно -
Statement.EXECUTE_FAILEDдля указания, что команда не была успешно выполнена
- Since:
- 1.8
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.sql/java/sql/BatchUpdateException.html