Класс 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/BatchUpdateException.html