Класс BatchUpdateException
- 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.
Реализация JDBC-драйвера должна использовать конструктор BatchUpdateException(String reason, String SQLState,
int vendorCode, long []updateCounts,Throwable cause) вместо конструкторов, принимающих int[] для подсчета обновлений, чтобы избежать возможного переполнения.
Если вызывается метод Statement.executeLargeBatch, рекомендуется вызвать getLargeUpdateCounts, а не getUpdateCounts, чтобы избежать возможного переполнения целочисленного подсчета обновлений.
- С:
- 1.2
- См. также:
- Сериализованная форма
Конструкторы
| Конструктор и описание |
|---|
BatchUpdateException() Создает объект |
BatchUpdateException(int[] updateCounts) Создает объект |
BatchUpdateException(int[] updateCounts,
Throwable cause) Создает объект |
BatchUpdateException(String reason,
int[] updateCounts) Создает объект |
BatchUpdateException(String reason,
int[] updateCounts,
Throwable cause) Создает объект |
BatchUpdateException(String reason,
String SQLState,
int[] updateCounts) Создает объект |
BatchUpdateException(String reason,
String SQLState,
int[] updateCounts,
Throwable cause) Создает объект |
BatchUpdateException(String reason,
String SQLState,
int vendorCode,
int[] updateCounts) Создает объект |
BatchUpdateException(String reason,
String SQLState,
int vendorCode,
int[] updateCounts,
Throwable cause) Создает объект |
BatchUpdateException(String reason,
String SQLState,
int vendorCode,
long[] updateCounts,
Throwable cause) Создает объект |
BatchUpdateException(Throwable 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(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-драйверов, которые продолжают обработку после ошибки команды; счётчик обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакетной операции до ошибки для JDBC-драйверов, которые прекращают обработку после ошибки команды - С:
- 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для каждой SQL-команды в пакетной операции для JDBC-драйверов, которые продолжают обработку после ошибки команды; счётчик обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакетной операции до ошибки для JDBC-драйверов, которые прекращают обработку после ошибки команды - С:
- 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для каждой SQL-команды в пакетной операции для JDBC-драйверов, которые продолжают обработку после ошибки команды; счётчик обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакетной операции до ошибки для JDBC-драйверов, которые прекращают обработку после ошибки команды - С:
- 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).
- С:
- 1.2
- См. также:
BatchUpdateException(java.lang.String, java.lang.String, int, long[], 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(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для каждой SQL-команды в пакетной операции для JDBC-драйверов, которые продолжают обработку после ошибки команды; счётчик обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакетной операции до ошибки для JDBC-драйверов, которые прекращают обработку после ошибки команды -
cause- основная причина этогоSQLException(сохраняется для последующего извлечения методомgetCause()); может быть null, что указывает на отсутствие или неизвестность причины. - С:
- 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-драйверов, которые продолжают обработку после ошибки команды; счётчик обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакетной операции до ошибки для JDBC-драйверов, которые прекращают обработку после ошибки команды -
cause- основная причина этогоSQLException(сохраняется для последующего извлечения методомgetCause()); может быть null, что указывает на отсутствие или неизвестность причины. - С:
- 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-драйверов, которые продолжают обработку после ошибки команды; количество обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакетном запросе до ошибки для JDBC-драйверов, которые прекращают обработку после ошибки командыПримечание: Нет проверки
updateCountsна переполнение, поэтому рекомендуется использовать конструкторBatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts,Throwable cause). -
cause— основная причина этогоSQLException(сохраняется для последующего извлечения методомgetCause()); может быть null, указывая на отсутствие или неизвестность причины. - С:
- 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для каждой SQL-команды в пакетном запросе для JDBC-драйверов, которые продолжают обработку после ошибки команды; количество обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакетном запросе до ошибки для JDBC-драйверов, которые прекращают обработку после ошибки командыПримечание: Нет проверки
updateCountsна переполнение, поэтому рекомендуется использовать конструкторBatchUpdateException(String reason, String SQLState, int vendorCode, long []updateCounts,Throwable cause). -
cause— основная причина этогоSQLException(сохраняется для последующего извлечения методомgetCause()); может быть null, указывая на отсутствие или неизвестность причины. - С:
- 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-драйверов, которые продолжают обработку после ошибки команды; количество обновлений илиStatement.SUCCESS_NO_INFOдля каждой SQL-команды в пакетном запросе до ошибки для JDBC-драйверов, которые прекращают обработку после ошибки команды -
cause— основная причина этогоSQLException(сохраняется для последующего извлечения методомgetCause()); может быть null, указывая на отсутствие или неизвестность причины. - С:
- 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
© 1993, 2020, 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.