Интерфейс Statement
- Все суперинтерфейсы:
- AutoCloseable, Wrapper
- Все известные подинтерфейсы:
- CallableStatement, PreparedStatement
public interface Statement extends Wrapper, AutoCloseable
Объект, используемый для выполнения статического SQL-запроса и возвращения полученных результатов.
По умолчанию, только один ResultSet объект на один объект Statement может быть открыт одновременно. Поэтому, если чтение одного объекта ResultSet перекрывается чтением другого, каждый должен быть сгенерирован разными объектами Statement. Все методы выполнения в интерфейсе Statement неявно закрывают текущий объект ResultSet заявления, если открытый существует.
- См. также:
-
Connection.createStatement(),ResultSet
Краткое описание полей
| Модификатор и тип | Поле и описание |
|---|---|
static int |
CLOSE_ALL_RESULTS Константа, указывающая, что все объекты |
static int |
CLOSE_CURRENT_RESULT Константа, указывающая, что текущий объект |
static int |
EXECUTE_FAILED Константа, указывающая, что произошла ошибка во время выполнения пакетного запроса. |
static int |
KEEP_CURRENT_RESULT Константа, указывающая, что текущий объект |
static int |
NO_GENERATED_KEYS Константа, указывающая, что сгенерированные ключи не должны быть доступны для извлечения. |
static int |
RETURN_GENERATED_KEYS Константа, указывающая, что сгенерированные ключи должны быть доступны для извлечения. |
static int |
SUCCESS_NO_INFO Константа, указывающая, что пакетный запрос выполнился успешно, но количество затронутых строк недоступно. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
void |
addBatch(String sql) Добавляет заданную SQL-команду в текущий список команд для этого объекта |
void |
cancel() Отменяет этот объект |
void |
clearBatch() Очищает текущий список SQL-команд объекта |
void |
clearWarnings() Очищает все предупреждения, сообщённые объектом |
void |
close() Немедленно освобождает базу данных и JDBC-ресурсы этого объекта |
void |
closeOnCompletion() Указывает, что этот объект |
boolean |
execute(String sql) Выполняет заданный SQL-запрос, который может возвращать несколько результатов. |
boolean |
execute(String sql,
int autoGeneratedKeys) Выполняет заданный SQL-запрос, который может возвращать несколько результатов, и сигнализирует драйверу, что любые автоматически сгенерированные ключи должны быть доступны для извлечения. |
boolean |
execute(String sql,
int[] columnIndexes) Выполняет заданный SQL-запрос, который может возвращать несколько результатов, и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. |
boolean |
execute(String sql,
String[] columnNames) Выполняет заданный SQL-запрос, который может возвращать несколько результатов, и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. |
int[] |
executeBatch() Отправляет пакет команд в базу данных для выполнения и, если все команды выполнились успешно, возвращает массив счётов обновлений. |
default long[] |
executeLargeBatch() Отправляет пакет команд в базу данных для выполнения и, если все команды выполнились успешно, возвращает массив счётов обновлений. |
default long |
executeLargeUpdate(String sql) Выполняет заданный SQL-запрос, который может быть |
default long |
executeLargeUpdate(String sql,
int autoGeneratedKeys) Выполняет заданный SQL-запрос и сигнализирует драйверу с помощью заданного флага, о том, должны ли автоматически сгенерированные ключи, созданные этим объектом |
default long |
executeLargeUpdate(String sql,
int[] columnIndexes) Выполняет заданный SQL-запрос и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. |
default long |
executeLargeUpdate(String sql,
String[] columnNames) Выполняет заданный SQL-запрос и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. |
ResultSet |
executeQuery(String sql) Выполняет заданный SQL-запрос, который возвращает один объект |
int |
executeUpdate(String sql) Выполняет заданный SQL-запрос, который может быть |
int |
executeUpdate(String sql,
int autoGeneratedKeys) Выполняет заданный SQL-запрос и сигнализирует драйверу с помощью заданного флага, о том, должны ли автоматически сгенерированные ключи, созданные этим объектом |
int |
executeUpdate(String sql,
int[] columnIndexes) Выполняет заданный SQL-запрос и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. |
int |
executeUpdate(String sql,
String[] columnNames) Выполняет заданный SQL-запрос и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. |
Connection |
getConnection() Возвращает объект |
int |
getFetchDirection() Возвращает направление извлечения строк из таблиц базы данных, которое является значением по умолчанию для наборов результатов, сгенерированных из этого объекта |
int |
getFetchSize() Возвращает количество строк набора результатов, которое является значением по умолчанию для размера извлечения для объектов |
ResultSet |
getGeneratedKeys() Возвращает любые автоматически сгенерированные ключи, созданные в результате выполнения этого объекта |
default long |
getLargeMaxRows() Возвращает максимальное количество строк, которое может содержать объект |
default long |
getLargeUpdateCount() Возвращает текущий результат как счёт обновления; если результат является объектом |
int |
getMaxFieldSize() Возвращает максимальное количество байтов, которое может быть возвращено для значений символьных и двоичных столбцов в объекте |
int |
getMaxRows() Возвращает максимальное количество строк, которое может содержать объект |
boolean |
getMoreResults() Переходит к следующему результату этого объекта |
boolean |
getMoreResults(int current) Переходит к следующему результату этого объекта |
int |
getQueryTimeout() Возвращает количество секунд, которое драйвер будет ждать выполнения объекта |
ResultSet |
getResultSet() Возвращает текущий результат как объект |
int |
getResultSetConcurrency() Возвращает конкурентность набора результатов для объектов |
int |
getResultSetHoldability() Возвращает удерживаемость набора результатов для объектов |
int |
getResultSetType() Возвращает тип набора результатов для объектов |
int |
getUpdateCount() Возвращает текущий результат как счёт обновления; если результат является объектом |
SQLWarning |
getWarnings() Возвращает первое предупреждение, сообщённое вызовами в этом объекте |
boolean |
isClosed() Возвращает, был ли закрыт этот объект |
boolean |
isCloseOnCompletion() Возвращает значение, указывающее, будет ли этот объект |
boolean |
isPoolable() Возвращает значение, указывающее, является ли объект |
void |
setCursorName(String name) Устанавливает имя SQL-курсора в заданное значение |
void |
setEscapeProcessing(boolean enable) Включает или выключает обработку экранирования. |
void |
setFetchDirection(int direction) Даёт драйверу подсказку о направлении обработки строк в объектах |
void |
setFetchSize(int rows) Даёт JDBC-драйверу подсказку о количестве строк, которые следует извлечь из базы данных, когда потребуются дополнительные строки для объектов |
default void |
setLargeMaxRows(long max) Устанавливает предел максимального количества строк, которое может содержать любой объект |
void |
setMaxFieldSize(int max) Устанавливает предел максимального количества байтов, которые могут быть возвращены для значений символьных и двоичных столбцов в объекте |
void |
setMaxRows(int max) Устанавливает предел максимального количества строк, которое может содержать любой объект |
void |
setPoolable(boolean poolable) Запрашивает, чтобы |
void |
setQueryTimeout(int seconds) Устанавливает количество секунд, которое драйвер будет ждать, пока объект |
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap Поля
CLOSE_CURRENT_RESULT
static final int CLOSE_CURRENT_RESULT
Константа, указывающая, что текущий объект ResultSet должен быть закрыт при вызове getMoreResults.
- Since:
- 1.4
- See Also:
- Constant Field Values
KEEP_CURRENT_RESULT
static final int KEEP_CURRENT_RESULT
Константа, указывающая, что текущий объект ResultSet не должен быть закрыт при вызове getMoreResults.
- Since:
- 1.4
- See Also:
- Constant Field Values
CLOSE_ALL_RESULTS
static final int CLOSE_ALL_RESULTS
Константа, указывающая, что все объекты ResultSet, которые ранее оставались открытыми, должны быть закрыты при вызове getMoreResults.
- Since:
- 1.4
- See Also:
- Constant Field Values
SUCCESS_NO_INFO
static final int SUCCESS_NO_INFO
Константа, указывающая, что пакетное утверждение выполнено успешно, но количество затронутых им строк недоступно.
- Since:
- 1.4
- See Also:
- Constant Field Values
EXECUTE_FAILED
static final int EXECUTE_FAILED
Константа, указывающая на ошибку при выполнении пакетного утверждения.
- Since:
- 1.4
- See Also:
- Constant Field Values
RETURN_GENERATED_KEYS
static final int RETURN_GENERATED_KEYS
Константа, указывающая, что сгенерированные ключи должны быть доступны для извлечения.
- Since:
- 1.4
- See Also:
- Constant Field Values
NO_GENERATED_KEYS
static final int NO_GENERATED_KEYS
Константа, указывающая, что сгенерированные ключи не должны быть доступны для извлечения.
- Since:
- 1.4
- See Also:
- Constant Field Values
Методы
executeQuery
ResultSet executeQuery(String sql)
throws SQLException Выполняет данное SQL-утверждение, которое возвращает один объект ResultSet.
Примечание:Этот метод не может быть вызван для PreparedStatement или CallableStatement.
- Parameters:
-
sql- SQL-запрос для отправки в базу данных, обычно статическое SQL-утверждениеSELECT - Returns:
- объект
ResultSet, содержащий данные, полученные в результате данного запроса; никогда неnull - Throws:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается для закрытогоStatement, данный SQL-запрос создаёт что-либо отличное от одного объектаResultSet, метод вызывается дляPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что значение тайм-аута, указанное методомsetQueryTimeout, было превышено, и по крайней мере попытался отменить текущее выполняющеесяStatement
executeUpdate
int executeUpdate(String sql)
throws SQLException Выполняет данное SQL-утверждение, которое может быть утверждением INSERT, UPDATE или DELETE или SQL-утверждением, которое ничего не возвращает, например, SQL DDL-утверждение.
Примечание:Этот метод не может быть вызван для PreparedStatement или CallableStatement.
- Parameters:
-
sql- SQL-утверждение языка манипулирования данными (DML), такое какINSERT,UPDATEилиDELETE; или SQL-утверждение, которое ничего не возвращает, например, DDL-утверждение. - Returns:
- либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
- Throws:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается для закрытогоStatement, данный SQL-запрос создаёт объектResultSet, метод вызывается дляPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что значение тайм-аута, указанное методомsetQueryTimeout, было превышено, и по крайней мере попытался отменить текущее выполняющеесяStatement
close
void close()
throws SQLException Немедленно освобождает ресурсы базы данных и JDBC этого объекта Statement, вместо того чтобы ждать этого, когда он будет автоматически закрыт. Как правило, рекомендуется освобождать ресурсы, как только вы закончили с ними работать, чтобы избежать связывания ресурсов базы данных.
Вызов метода close для объекта Statement, который уже закрыт, не оказывает никакого действия.
Примечание:Когда объект Statement закрыт, его текущий объект ResultSet, если он существует, также закрывается.
- Specified by:
-
closein interfaceAutoCloseable - Throws:
-
SQLException- если возникает ошибка доступа к базе данных
getMaxFieldSize
int getMaxFieldSize()
throws SQLException Извлекает максимальное количество байт, которое может быть возвращено для значений столбцов символов и двоичных данных в объекте ResultSet, созданном этим объектом Statement. Это ограничение применяется только к столбцам BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR и LONGVARCHAR. Если превышен лимит, избыточные данные будут молча отброшены.
- Returns:
- текущее ограничение размера столбца для столбцов, хранящих символьные и двоичные значения; ноль означает, что нет ограничения
- Throws:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытогоStatement - See Also:
setMaxFieldSize(int)
setMaxFieldSize
void setMaxFieldSize(int max)
throws SQLException Устанавливает ограничение для максимального количества байт, которое может быть возвращено для значений столбцов символов и двоичных данных в объекте ResultSet, созданном этим объектом Statement. Это ограничение применяется только к полям BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR и LONGVARCHAR. Если превышен лимит, избыточные данные будут молча отброшены. Для максимальной переносимости используйте значения больше 256.
- Parameters:
-
max- новый лимит размера столбца в байтах; ноль означает, что нет ограничения - Throws:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается для закрытогоStatementили условиеmax >= 0не выполняется - See Also:
getMaxFieldSize()
getMaxRows
int getMaxRows()
throws SQLException Извлекает максимальное количество строк, которое может содержать объект ResultSet, созданный этим объектом Statement. Если этот лимит превышен, избыточные строки будут молча отброшены.
- Returns:
- текущее максимальное количество строк для объекта
ResultSet, созданного этим объектомStatement; ноль означает, что нет ограничения - Throws:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытогоStatement - See Also:
setMaxRows(int)
setMaxRows
void setMaxRows(int max)
throws SQLException Устанавливает ограничение для максимального количества строк, которое может содержать любой объект ResultSet, созданный этим объектом Statement, на заданное число. Если этот лимит превышен, избыточные строки будут молча отброшены.
- Parameters:
-
max- новый лимит максимального количества строк; ноль означает, что нет ограничения - Throws:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается для закрытогоStatementили условиеmax >= 0не выполняется - See Also:
getMaxRows()
setEscapeProcessing
void setEscapeProcessing(boolean enable)
throws SQLException Включает или отключает обработку экранирования. Если сканирование экранирования включено (по умолчанию), драйвер будет выполнять замену экранирования перед отправкой SQL-запроса в базу данных.
Свойство Connection и DataSource escapeProcessing может использоваться для изменения поведения обработки экранирования по умолчанию. Значение true (по умолчанию) включает обработку экранирования для всех объектов Statement. Значение false отключает обработку экранирования для всех объектов Statement. Метод setEscapeProcessing может использоваться для указания поведения обработки экранирования для отдельного объекта Statement.
Примечание: поскольку подготовленные утверждения обычно анализируются до выполнения этого вызова, отключение обработки экранирования для объектов PreparedStatements не будет иметь эффекта.
- Parameters:
-
enable-trueдля включения обработки экранирования;falseдля отключения - Throws:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытогоStatement
getQueryTimeout
int getQueryTimeout()
throws SQLException Извлекает количество секунд, в течение которых драйвер будет ждать выполнения объекта Statement. Если лимит превышен, выбрасывается SQLException.
- Returns:
- текущий лимит времени ожидания запроса в секундах; ноль означает, что нет ограничения
- Throws:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытогоStatement - See Also:
setQueryTimeout(int)
setQueryTimeout
void setQueryTimeout(int seconds)
throws SQLException Устанавливает количество секунд, в течение которых драйвер будет ожидать выполнения объекта Statement, до заданного количества секунд. По умолчанию нет ограничений на время, разрешенное для завершения выполняемого оператора. Если лимит превышен, выбрасывается исключение SQLTimeoutException. JDBC-драйвер должен применять это ограничение к методам execute, executeQuery и executeUpdate.
Примечание: Реализации JDBC-драйверов также могут применять это ограничение к методам ResultSet (подробности см. в документации вашего поставщика драйверов).
Примечание: В случае пакетной обработки Statement, определяется реализацией, применяется ли тайм-аут к отдельным командам SQL, добавленным с помощью метода addBatch, или ко всей партии команд SQL, вызываемых методом executeBatch (подробности см. в документации вашего поставщика драйверов).
- Параметры:
-
seconds- новый лимит времени ожидания запроса в секундах; ноль означает, что ограничения нет - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается для закрытого объектаStatementили условиеseconds >= 0не выполняется - См. также:
getQueryTimeout()
cancel
void cancel()
throws SQLException Отменяет этот объект Statement, если СУБД и драйвер поддерживают прерывание оператора SQL. Этот метод может использоваться одним потоком для отмены оператора, который выполняется другим потоком.
- Исключения:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытого объектаStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод
getWarnings
SQLWarning getWarnings()
throws SQLException Извлекает первое предупреждение, сообщенное вызовами этого объекта Statement. Последующие предупреждения объекта Statement будут присоединены к этому объекту SQLWarning.
Цепочка предупреждений автоматически очищается каждый раз при (повторном) выполнении оператора. Этот метод не может быть вызван для закрытого объекта Statement; в противном случае будет выброшено исключение SQLException.
Примечание: Если вы обрабатываете объект ResultSet, любые предупреждения, связанные с чтениями из этого объекта ResultSet, будут присоединены к нему, а не к объекту Statement, который его создал.
- Возвращает:
- первый объект
SQLWarningилиnull, если предупреждений нет - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытого объектаStatement
clearWarnings
void clearWarnings()
throws SQLException Очищает все предупреждения, сообщенные об этом объекте Statement. После вызова этого метода метод getWarnings будет возвращать null, пока не будет сообщено новое предупреждение для этого объекта Statement.
- Исключения:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытого объектаStatement
setCursorName
void setCursorName(String name)
throws SQLException Устанавливает имя курсора SQL на заданное String, которое будет использоваться последующими методами объекта Statement execute. Это имя может затем использоваться в операторах SQL позиционированного обновления или удаления для идентификации текущей строки в объекте ResultSet, созданном этим оператором. Если база данных не поддерживает позиционированное обновление/удаление, этот метод является операцией без действия. Чтобы гарантировать, что курсор имеет соответствующий уровень изоляции для поддержки обновлений, оператор SELECT курсора должен иметь вид SELECT FOR UPDATE. Если FOR UPDATE отсутствует, позиционированные обновления могут завершиться неудачей.
Примечание: По определению, выполнение позиционированных обновлений и удалений должно выполняться другим объектом Statement, отличным от того, который сгенерировал объект ResultSet, используемый для позиционирования. Кроме того, имена курсоров должны быть уникальными в пределах соединения.
- Параметры:
-
name- новое имя курсора, которое должно быть уникальным в пределах соединения - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытого объектаStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод
execute
boolean execute(String sql)
throws SQLException Выполняет заданный оператор SQL, который может возвращать несколько результатов. В некоторых (редких) ситуациях один оператор SQL может возвращать несколько результирующих наборов и/или число обновлений. Обычно вы можете игнорировать это, если вы не (1) выполняете хранимую процедуру, которая, как вы знаете, может возвращать несколько результатов, или (2) динамически выполняете неизвестную строку SQL.
Метод execute выполняет оператор SQL и указывает форму первого результата. Затем вы должны использовать методы getResultSet или getUpdateCount для получения результата и getMoreResults для перехода к любому последующему результату(ам).
Примечание: Этот метод не может быть вызван для объекта PreparedStatement или CallableStatement.
- Параметры:
-
sql- любой оператор SQL - Возвращает:
-
true, если первый результат является объектомResultSet;false, если это число обновлений или нет результатов - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается для закрытого объектаStatement, метод вызывается для объектаPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что значение тайм-аута, указанное методомsetQueryTimeout, было превышено, и по крайней мере попытался отменить текущее выполнениеStatement - См. также:
-
getResultSet(),getUpdateCount(),getMoreResults()
getResultSet
ResultSet getResultSet()
throws SQLException Извлекает текущий результат в виде объекта ResultSet. Этот метод должен вызываться только один раз для каждого результата.
- Возвращает:
- текущий результат в виде объекта
ResultSetилиnull, если результат является числом обновлений или результатов больше нет - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытого объектаStatement - См. также:
execute(java.lang.String)
getUpdateCount
int getUpdateCount()
throws SQLException Извлекает текущий результат как число обновлений; если результат является объектом ResultSet или результатов больше нет, возвращается -1. Этот метод должен вызываться только один раз для каждого результата.
- Возвращает:
- текущий результат как число обновлений; -1, если текущий результат является объектом
ResultSetили результатов больше нет - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытого объектаStatement - См. также:
execute(java.lang.String)
getMoreResults
boolean getMoreResults()
throws SQLException Переходит к следующему результату этого объекта Statement, возвращает true, если это объект ResultSet, и неявно закрывает любой текущий объект(ы) ResultSet, полученный(е) с помощью метода getResultSet.
Результатов больше нет, когда истинно следующее:
// stmt is a Statement object
((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
- Возвращает:
-
true, если следующий результат является объектомResultSet;false, если это число обновлений или результатов больше нет - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытого объектаStatement - См. также:
execute(java.lang.String)
setFetchDirection
void setFetchDirection(int direction)
throws SQLException Дает драйверу подсказку о направлении, в котором будут обрабатываться строки в объектах ResultSet, созданных с использованием этого объекта Statement. Значение по умолчанию — ResultSet.FETCH_FORWARD.
Обратите внимание, что этот метод устанавливает направление извлечения по умолчанию для результирующих наборов, созданных этим объектом Statement. Каждый результирующий набор имеет свои собственные методы для получения и установки своего собственного направления извлечения.
- Параметры:
-
direction- начальное направление обработки строк - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается для закрытого объектаStatementили заданное направление не является одним изResultSet.FETCH_FORWARD,ResultSet.FETCH_REVERSEилиResultSet.FETCH_UNKNOWN - С версии:
- 1.2
- См. также:
getFetchDirection()
getFetchDirection
int getFetchDirection()
throws SQLException Извлекает направление извлечения строк из таблиц базы данных, которое является направлением по умолчанию для результирующих наборов, созданных из этого объекта Statement. Если этот объект Statement не установил направление извлечения, вызвав метод setFetchDirection, возвращаемое значение является специфичным для реализации.
- Возвращает:
- направление извлечения по умолчанию для результирующих наборов, созданных из этого объекта
Statement - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается для закрытого объектаStatement - С версии:
- 1.2
- См. также:
setFetchDirection(int)
setFetchSize
void setFetchSize(int rows)
throws SQLException Дает JDBC-драйверу подсказку о количестве строк, которые должны быть извлечены из базы данных, когда для объектов ResultSet, созданных этим Statement, потребуются дополнительные строки. Если указанное значение равно нулю, то подсказка игнорируется. Значение по умолчанию равно нулю.
- Параметры:
-
rows- количество строк для извлечения - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается для закрытого объектаStatementили условиеrows >= 0не выполняется. - С версии:
- 1.2
- См. также:
getFetchSize()
getFetchSize
int getFetchSize()
throws SQLException Возвращает количество строк набора результатов, которое является значением по умолчанию для размера выборки объектов ResultSet, сгенерированных из этого объекта Statement. Если этот объект Statement не установил размер выборки, вызвав метод setFetchSize, возвращаемое значение зависит от реализации.
- Возвращает:
- значение размера выборки по умолчанию для наборов результатов, сгенерированных из этого объекта
Statement - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод был вызван для закрытого объектаStatement - С:
- 1.2
- См. также:
setFetchSize(int)
getResultSetConcurrency
int getResultSetConcurrency()
throws SQLException Возвращает параллельность набора результатов для объектов ResultSet, сгенерированных этим объектом Statement.
- Возвращает:
- либо
ResultSet.CONCUR_READ_ONLY, либоResultSet.CONCUR_UPDATABLE - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод был вызван для закрытого объектаStatement - С:
- 1.2
getResultSetType
int getResultSetType()
throws SQLException Возвращает тип набора результатов для объектов ResultSet, сгенерированных этим объектом Statement.
- Возвращает:
- одно из значений
ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVEилиResultSet.TYPE_SCROLL_SENSITIVE - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод был вызван для закрытого объектаStatement - С:
- 1.2
addBatch
void addBatch(String sql)
throws SQLException Добавляет заданную SQL-команду в текущий список команд для этого объекта Statement. Команды в этом списке могут быть выполнены как пакет с помощью метода executeBatch.
Примечание: Этот метод не может быть вызван для объекта PreparedStatement или CallableStatement.
- Параметры:
-
sql— обычно это SQL-INSERTилиUPDATE-выражение - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatement, драйвер не поддерживает пакетные обновления, метод вызван для объектаPreparedStatementилиCallableStatement - С:
- 1.2
- См. также:
-
executeBatch(),DatabaseMetaData.supportsBatchUpdates()
clearBatch
void clearBatch()
throws SQLException Очищает текущий список SQL-команд для этого объекта Statement.
- Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatementили драйвер не поддерживает пакетные обновления - С:
- 1.2
- См. также:
-
addBatch(java.lang.String),DatabaseMetaData.supportsBatchUpdates()
executeBatch
int[] executeBatch()
throws SQLException Отправляет пакет команд в базу данных для выполнения и, если все команды успешно выполняются, возвращает массив счётчиков обновлений. Элементы массива, возвращённые методом, упорядочены в соответствии с порядком добавления команд в пакет.
Элементы массива, возвращённые методом executeBatch, могут быть следующими:
- Число, большее или равное нулю — указывает, что команда была обработана успешно, и является количеством обновлений, дающим количество строк в базе данных, затронутых выполнением команды.
- Значение
SUCCESS_NO_INFO— указывает, что команда была обработана успешно, но количество затронутых строк неизвестноЕсли одна из команд в пакете обновлений не выполняется должным образом, этот метод выбрасывает исключение
BatchUpdateException, и драйвер JDBC может или не может продолжить обработку оставшихся команд в пакете. Однако поведение драйвера должно быть согласованным с определённой СУБД, либо всегда продолжать обработку команд, либо никогда не продолжать обработку команд. Если драйвер продолжает обработку после ошибки, массив, возвращаемый методомBatchUpdateException.getUpdateCounts, будет содержать столько элементов, сколько команд в пакете, и по крайней мере один из элементов будет следующим: - Значение
EXECUTE_FAILED— указывает, что команда не была успешно выполнена и возникает только если драйвер продолжает обработку команд после ошибки
Возможные реализации и возвращаемые значения были изменены в Java 2 SDK, Стандартное издание, версия 1.3, чтобы учесть возможность продолжения обработки команд в пакетном обновлении после того, как был брошен объект BatchUpdateException.
- Возвращает:
- массив счётчиков обновлений, содержащий по одному элементу для каждой команды в пакете. Элементы массива упорядочены в соответствии с порядком добавления команд в пакет.
- Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatementили драйвер не поддерживает пакетные операторы. ВыбрасываетBatchUpdateException(подклассSQLException), если одна из команд, отправленных в базу данных, не выполняется должным образом или пытается вернуть набор результатов. -
SQLTimeoutException— когда драйвер определил, что время ожидания, заданное методомsetQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполнениеStatement - С:
- 1.2
- См. также:
-
addBatch(java.lang.String),DatabaseMetaData.supportsBatchUpdates()
getConnection
Connection getConnection()
throws SQLException Возвращает объект Connection, который создал этот объект Statement.
- Возвращает:
- соединение, которое создало этот оператор
- Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод был вызван для закрытого объектаStatement - С:
- 1.2
getMoreResults
boolean getMoreResults(int current)
throws SQLException Переходит к следующему результату для этого объекта Statement, обрабатывает любые текущие объекты ResultSet в соответствии с инструкциями, заданными заданным флагом, и возвращает true, если следующий результат — объект ResultSet.
Больше результатов нет, когда верно следующее:
// stmt is a Statement object
((stmt.getMoreResults(current) == false) && (stmt.getUpdateCount() == -1))
- Параметры:
-
current— одно из следующих значенийStatement, указывающее, что должно произойти с текущими объектамиResultSet, полученными с помощью методаgetResultSet:Statement.CLOSE_CURRENT_RESULT,Statement.KEEP_CURRENT_RESULTилиStatement.CLOSE_ALL_RESULTS - Возвращает:
-
true, если следующий результат — объектResultSet;false, если это количество обновлений или больше результатов нет - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatementили переданный аргумент не является одним из следующих:Statement.CLOSE_CURRENT_RESULT,Statement.KEEP_CURRENT_RESULTилиStatement.CLOSE_ALL_RESULTS -
SQLFeatureNotSupportedException— еслиDatabaseMetaData.supportsMultipleOpenResultsвозвращаетfalse, и либоStatement.KEEP_CURRENT_RESULT, либоStatement.CLOSE_ALL_RESULTSпереданы в качестве аргумента. - С:
- 1.4
- См. также:
execute(java.lang.String)
getGeneratedKeys
ResultSet getGeneratedKeys()
throws SQLException Возвращает любые сгенерированные ключи, созданные в результате выполнения этого объекта Statement. Если этот объект Statement не сгенерировал ключей, возвращается пустой объект ResultSet.
Примечание: Если столбцы, представляющие сгенерированные ключи, не были указаны, реализация драйвера JDBC определит столбцы, которые лучше всего представляют сгенерированные ключи.
- Возвращает:
- объект
ResultSet, содержащий сгенерированный(ые) ключ(и), сгенерированные выполнением этого объектаStatement - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод был вызван для закрытого объектаStatement -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод - С:
- 1.4
executeUpdate
int executeUpdate(String sql,
int autoGeneratedKeys)
throws SQLException Выполняет заданное SQL-выражение и сигнализирует драйверу с заданным флагом о том, должны ли сгенерированные ключи, созданные этим объектом Statement, быть доступны для получения. Драйвер проигнорирует флаг, если SQL-выражение не является оператором INSERT или оператором SQL, способным возвращать сгенерированные ключи (список таких операторов зависит от поставщика).
Примечание: Этот метод не может быть вызван для объекта PreparedStatement или CallableStatement.
- Параметры:
-
sql— SQL-оператор языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-оператор, не возвращающий ничего, например, оператор DDL. -
autoGeneratedKeys— флаг, указывающий, должны ли сгенерированные ключи быть доступны для получения; одно из следующих констант:Statement.RETURN_GENERATED_KEYSStatement.NO_GENERATED_KEYS - Возвращает:
- либо (1) количество строк для операторов языка манипулирования данными (DML), либо (2) 0 для SQL-операторов, не возвращающих ничего
- Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatement, заданное SQL-выражение возвращает объектResultSet, заданное значение не является допустимым, метод вызван для объектаPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS -
SQLTimeoutException— когда драйвер определил, что время ожидания, заданное методомsetQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполнениеStatement - С:
- 1.4
executeUpdate
int executeUpdate(String sql,
int[] columnIndexes)
throws SQLException Выполняет заданное SQL-утверждение и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит индексы столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является INSERT утверждением или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика).
Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL. -
columnIndexes- массив индексов столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки - Возвращает:
- либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, SQL-утверждение возвращает объектResultSet, второй аргумент, переданный в этот метод, не является массивомint, чьи элементы являются допустимыми индексами столбцов, метод вызван дляPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, превышено и по крайней мере предпринял попытку отменить текущее выполнениеStatement - С:
- 1.4
executeUpdate
int executeUpdate(String sql,
String[] columnNames)
throws SQLException Выполняет заданное SQL-утверждение и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит имена столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является INSERT утверждением или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика).
Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL. -
columnNames- массив имён столбцов, которые должны быть возвращены из вставленной строки - Возвращает:
- либо количество строк для
INSERT,UPDATEилиDELETEутверждений, либо 0 для SQL-утверждений, которые ничего не возвращают - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, SQL-утверждение возвращает объектResultSet, второй аргумент, переданный в этот метод, не является массивомString, чьи элементы являются допустимыми именами столбцов, метод вызван дляPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, превышено и по крайней мере предпринял попытку отменить текущее выполнениеStatement - С:
- 1.4
execute
boolean execute(String sql,
int autoGeneratedKeys)
throws SQLException Выполняет заданное SQL-утверждение, которое может возвращать несколько результатов, и сигнализирует драйверу, что любые автоматически сгенерированные ключи должны быть доступны для извлечения. Драйвер проигнорирует этот сигнал, если SQL-утверждение не является INSERT утверждением или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика).
В некоторых (редких) ситуациях одно SQL-утверждение может возвращать несколько наборов результатов и/или счётчиков обновлений. Обычно этим можно пренебречь, если вы не (1) выполняете хранимую процедуру, о которой известно, что она может возвращать несколько результатов, или (2) динамически выполняете неизвестную строку SQL.
Метод execute выполняет SQL-утверждение и указывает форму первого результата. Затем вы должны использовать методы getResultSet или getUpdateCount для извлечения результата и getMoreResults для перехода к любым последующим результатам.
Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql- любое SQL-утверждение -
autoGeneratedKeys- константа, указывающая, должны ли быть доступны для извлечения автоматически сгенерированные ключи, используя методgetGeneratedKeys; одна из следующих констант:Statement.RETURN_GENERATED_KEYSилиStatement.NO_GENERATED_KEYS - Возвращает:
-
true, если первый результат — объектResultSet;false, если это счётчик обновлений или результатов нет - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, второй параметр, переданный в этот метод, не являетсяStatement.RETURN_GENERATED_KEYSилиStatement.NO_GENERATED_KEYS, метод вызван дляPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, превышено и по крайней мере предпринял попытку отменить текущее выполнениеStatement - С:
- 1.4
- См. также:
-
getResultSet(),getUpdateCount(),getMoreResults(),getGeneratedKeys()
execute
boolean execute(String sql,
int[] columnIndexes)
throws SQLException Выполняет заданное SQL-утверждение, которое может возвращать несколько результатов, и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит индексы столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является INSERT утверждением или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика).
В некоторых (редких) ситуациях одно SQL-утверждение может возвращать несколько наборов результатов и/или счётчиков обновлений. Обычно этим можно пренебречь, если вы не (1) выполняете хранимую процедуру, о которой известно, что она может возвращать несколько результатов, или (2) динамически выполняете неизвестную строку SQL.
Метод execute выполняет SQL-утверждение и указывает форму первого результата. Затем вы должны использовать методы getResultSet или getUpdateCount для извлечения результата и getMoreResults для перехода к любым последующим результатам.
Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql- любое SQL-утверждение -
columnIndexes- массив индексов столбцов в вставленной строке, которые должны быть доступны для извлечения с помощью вызова методаgetGeneratedKeys - Возвращает:
-
true, если первый результат — объектResultSet;false, если это счётчик обновлений или результатов нет - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, элементы массиваint, переданные в этот метод, не являются допустимыми индексами столбцов, метод вызван дляPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, превышено и по крайней мере предпринял попытку отменить текущее выполнениеStatement - С:
- 1.4
- См. также:
-
getResultSet(),getUpdateCount(),getMoreResults()
execute
boolean execute(String sql,
String[] columnNames)
throws SQLException Выполняет заданное SQL-утверждение, которое может возвращать несколько результатов, и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит имена столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является INSERT утверждением или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика).
В некоторых (редких) ситуациях одно SQL-утверждение может возвращать несколько наборов результатов и/или счётчиков обновлений. Обычно этим можно пренебречь, если вы не (1) выполняете хранимую процедуру, о которой известно, что она может возвращать несколько результатов, или (2) динамически выполняете неизвестную строку SQL.
Метод execute выполняет SQL-утверждение и указывает форму первого результата. Затем вы должны использовать методы getResultSet или getUpdateCount для извлечения результата и getMoreResults для перехода к любым последующим результатам.
Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql- любое SQL-утверждение -
columnNames- массив имён столбцов в вставляемой строке, которые должны быть доступны для извлечения с помощью вызова методаgetGeneratedKeys - Возвращает:
-
true, если следующий результат — объектResultSet;false, если это количество обновлений или результатов больше нет - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, элементы массиваString, переданного в этот метод, не являются допустимыми именами столбцов, метод вызван дляPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, было превышено, и он по крайней мере попытался отменить текущую выполняющуюсяStatement - С:
- 1.4
- См. также:
-
getResultSet(),getUpdateCount(),getMoreResults(),getGeneratedKeys()
getResultSetHoldability
int getResultSetHoldability()
throws SQLException Извлекает сохраняемость набора результатов для объектов ResultSet, сгенерированных этим объектом Statement.
- Возвращает:
- либо
ResultSet.HOLD_CURSORS_OVER_COMMIT, либоResultSet.CLOSE_CURSORS_AT_COMMIT - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - С:
- 1.4
isClosed
boolean isClosed()
throws SQLException Извлекает, закрыт ли этот объект Statement. Объект Statement закрыт, если на нём вызван метод close или если он закрывается автоматически.
- Возвращает:
- true, если этот объект
Statementзакрыт; false, если он всё ещё открыт - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных - С:
- 1.6
setPoolable
void setPoolable(boolean poolable)
throws SQLException Запрашивает, должен ли объект Statement быть помещён в пул или нет. Указанное значение является подсказкой для реализации пула заявок, указывающей, хочет ли приложение, чтобы запрос был помещён в пул. Решение о том, использовать подсказку или нет, остаётся за менеджером пула заявок.
Значение poolable запроса применимо как к внутренним кэшам заявок, реализуемым драйвером, так и к внешним кэшам заявок, реализуемым серверами приложений и другими приложениями.
По умолчанию, объект Statement не является помещаемым в пул при создании, а PreparedStatement и CallableStatement являются помещаемыми в пул при создании.
- Параметры:
-
poolable- запрашивает, что запрос должен быть помещен в пул, если true, и что запрос не должен быть помещен в пул, если false - Исключения:
-
SQLException- если этот метод вызван для закрытогоStatement - С:
- 1.6
isPoolable
boolean isPoolable()
throws SQLException Возвращает значение, указывающее, помещаем ли Statement в пул.
- Возвращает:
-
true, еслиStatementпомещаемый в пул;falseв противном случае - Исключения:
-
SQLException- если этот метод вызван для закрытогоStatement - С:
- 1.6
- См. также:
setPoolable(boolean)
closeOnCompletion
void closeOnCompletion()
throws SQLException Устанавливает, что этот объект Statement будет закрыт, когда все его зависимые наборы результатов будут закрыты. Если выполнение запроса Statement не приводит к созданию наборов результатов, этот метод не имеет эффекта.
Примечание: Несколько вызовов closeOnCompletion не переключают действие для этого объекта Statement. Однако вызов closeOnCompletion влияет как на последующее выполнение запросов, так и на запросы, которые в данный момент имеют открытые зависимые наборы результатов.
- Исключения:
-
SQLException- если этот метод вызван для закрытогоStatement - С:
- 1.7
isCloseOnCompletion
boolean isCloseOnCompletion()
throws SQLException Возвращает значение, указывающее, будет ли этот объект Statement закрыт, когда все зависимые наборы результатов будут закрыты.
- Возвращает:
-
true, еслиStatementбудет закрыт, когда все зависимые наборы результатов будут закрыты;falseв противном случае - Исключения:
-
SQLException- если этот метод вызван для закрытогоStatement - С:
- 1.7
getLargeUpdateCount
default long getLargeUpdateCount()
throws SQLException Извлекает текущий результат в виде счётчика обновлений; если результат — объект ResultSet или результатов больше нет, возвращается -1. Этот метод должен вызываться только один раз на результат.
Этот метод следует использовать, когда возвращаемое количество строк может превышать Integer.MAX_VALUE.
Реализация по умолчанию выбросит UnsupportedOperationException
- Возвращает:
- текущий результат в виде счётчика обновлений; -1, если текущий результат — объект
ResultSetили результатов больше нет - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - С:
- 1.8
- См. также:
execute(java.lang.String)
setLargeMaxRows
default void setLargeMaxRows(long max)
throws SQLException Устанавливает ограничение на максимальное число строк, которое может содержать любой объект ResultSet, сгенерированный этим объектом Statement, до указанного числа. Если предел превышен, избыточные строки отбрасываются без ошибок.
Этот метод следует использовать, когда предел строк может превышать Integer.MAX_VALUE.
Реализация по умолчанию выбросит UnsupportedOperationException
- Параметры:
-
max- новый предел максимального количества строк; ноль означает отсутствие предела - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили условиеmax >= 0не выполняется - С:
- 1.8
- См. также:
getMaxRows()
getLargeMaxRows
default long getLargeMaxRows()
throws SQLException Возвращает максимальное количество строк, которое может содержать объект ResultSet, созданный этим объектом Statement. Если этот предел превышен, избыточные строки отбрасываются без ошибок.
Этот метод следует использовать, когда возвращаемый предел строк может превышать Integer.MAX_VALUE.
Реализация по умолчанию вернёт 0
- Возвращает:
- текущее максимальное количество строк для объекта
ResultSet, созданного этим объектомStatement; ноль означает отсутствие предела - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - С:
- 1.8
- См. также:
setMaxRows(int)
executeLargeBatch
default long[] executeLargeBatch()
throws SQLException Отправляет пакет команд в базу данных для выполнения и, если все команды успешно выполнятся, возвращает массив счётчиков обновлений. Элементы массива, возвращаемого методом long, упорядочены таким образом, чтобы соответствовать командам в пакете, упорядоченным по порядку их добавления в пакет. Элементы массива, возвращаемого методом executeLargeBatch, могут быть следующими:
- Число большее или равное нулю — указывает, что команда была обработана успешно и является счётчиком обновлений, указывающим число строк в базе данных, затронутых выполнением команды
- Значение
SUCCESS_NO_INFO— указывает, что команда была обработана успешно, но число затронутых строк неизвестноЕсли одна из команд в паке обновлений не выполняется должным образом, этот метод выбрасывает исключение
BatchUpdateException, и драйвер JDBC может либо продолжить обработку оставшихся команд в пакете, либо нет. Однако поведение драйвера должно быть согласованным с конкретным СУБД: либо всегда продолжать обработку команд, либо никогда не продолжать обработку команд. Если драйвер продолжает обработку после сбоя, массив, возвращаемый методомBatchUpdateException.getLargeUpdateCounts, будет содержать столько элементов, сколько команд в пакете, и, по крайней мере, один из элементов будет следующим: - Значение
EXECUTE_FAILED— указывает, что команда не выполнилась успешно и возникает только в том случае, если драйвер продолжает обработку команд после сбоя
Этот метод следует использовать, когда возвращаемое количество строк может превышать Integer.MAX_VALUE.
Реализация по умолчанию выбросит UnsupportedOperationException
- Возвращает:
- массив счётчиков обновлений, содержащий по одному элементу для каждой команды в пакете. Элементы массива упорядочены в соответствии с порядком добавления команд в пакет.
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили драйвер не поддерживает пакетные запросы. ВыбрасываетBatchUpdateException(подклассSQLException), если одна из команд, отправленных в базу данных, не выполнилась должным образом или попыталась вернуть набор результатов. -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, было превышено, и он по крайней мере попытался отменить текущую выполняющуюсяStatement - С:
- 1.8
- См. также:
-
addBatch(java.lang.String),DatabaseMetaData.supportsBatchUpdates()
executeLargeUpdate
default long executeLargeUpdate(String sql)
throws SQLException Выполняет заданное SQL-утверждение, которое может быть утверждением INSERT, UPDATE или DELETE, или SQL-утверждением, не возвращающим строк, например, SQL-утверждением DDL.
Этот метод следует использовать, когда количество возвращённых строк может превысить Integer.MAX_VALUE.
Примечание: Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
Реализация по умолчанию будет генерировать исключение UnsupportedOperationException
- Параметры:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, не возвращающее строк, например, утверждение DDL. - Возвращает:
- либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, не возвращающих строк.
- Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, заданное SQL-утверждение возвращает объектResultSet, метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что значение таймаута, указанное методомsetQueryTimeout, превышено и, по крайней мере, попытался отменить выполняющееся в данный моментStatement - С:
- 1.8
executeLargeUpdate
default long executeLargeUpdate(String sql,
int autoGeneratedKeys)
throws SQLException Выполняет заданное SQL-утверждение и сигнализирует драйверу с помощью заданного флага о том, должны ли автоматически сгенерированные ключи, созданные этим объектом Statement, быть доступными для извлечения. Драйвер проигнорирует флаг, если SQL-утверждение не является утверждением INSERT или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика).
Этот метод следует использовать, когда количество возвращённых строк может превысить Integer.MAX_VALUE.
Примечание: Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
Реализация по умолчанию будет генерировать исключение SQLFeatureNotSupportedException
- Параметры:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, не возвращающее строк, например, утверждение DDL. -
autoGeneratedKeys- флаг, указывающий, должны ли автоматически сгенерированные ключи быть доступными для извлечения; одна из следующих констант:Statement.RETURN_GENERATED_KEYSStatement.NO_GENERATED_KEYS - Возвращает:
- либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, не возвращающих строк.
- Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, заданное SQL-утверждение возвращает объектResultSet, заданная константа не является разрешенной, метод вызван дляPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS -
SQLTimeoutException- когда драйвер определил, что значение таймаута, указанное методомsetQueryTimeout, превышено и, по крайней мере, попытался отменить выполняющееся в данный моментStatement - С:
- 1.8
executeLargeUpdate
default long executeLargeUpdate(String sql,
int[] columnIndexes)
throws SQLException Выполняет заданное SQL-утверждение и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит индексы столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является утверждением INSERT или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика).
Этот метод следует использовать, когда количество возвращённых строк может превысить Integer.MAX_VALUE.
Примечание: Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
Реализация по умолчанию будет генерировать исключение SQLFeatureNotSupportedException
- Параметры:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, не возвращающее строк, например, утверждение DDL. -
columnIndexes- массив индексов столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки - Возвращает:
- либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, не возвращающих строк.
- Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, SQL-утверждение возвращает объектResultSet, второй аргумент, переданный в этот метод, не является массивомint, элементы которого являются допустимыми индексами столбцов, метод вызван дляPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, указанное методомsetQueryTimeout, превышено и, по крайней мере, попытался отменить выполняющееся в данный моментStatement - С:
- 1.8
executeLargeUpdate
default long executeLargeUpdate(String sql,
String[] columnNames)
throws SQLException Выполняет заданное SQL-утверждение и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит имена столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является утверждением INSERT или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика).
Этот метод следует использовать, когда количество возвращённых строк может превысить Integer.MAX_VALUE.
Примечание: Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
Реализация по умолчанию будет генерировать исключение SQLFeatureNotSupportedException
- Параметры:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, не возвращающее строк, например, утверждение DDL. -
columnNames- массив имён столбцов, которые должны быть возвращены из вставленной строки - Возвращает:
- количество строк для утверждений
INSERT,UPDATEилиDELETE, или 0 для SQL-утверждений, не возвращающих строк. - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, SQL-утверждение возвращает объектResultSet, второй аргумент, переданный в этот метод, не является массивомString, элементы которого являются допустимыми именами столбцов, метод вызван дляPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, указанное методомsetQueryTimeout, превышено и, по крайней мере, попытался отменить выполняющееся в данный моментStatement - С:
- 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.