Интерфейс Statement
- Все суперинтерфейсы:
AutoCloseable, Wrapper
- Все известные подинтерфейсы:
CallableStatement, PreparedStatement
public interface Statement extends Wrapper, AutoCloseable
Объект, используемый для выполнения статического оператора SQL и получения результатов его выполнения.
По умолчанию одновременно может быть открыт только один объект ResultSet для каждого объекта Statement. Поэтому, если чтение одного объекта ResultSet чередуется с чтением другого, каждый из них должен быть создан разными объектами Statement. Все методы выполнения в интерфейсе Statement неявно закрывают текущий объект ResultSet оператора, если он открыт.
- Начиная с:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
CLOSE_ALL_RESULTS |
Константа, указывающая, что все объекты ResultSet, ранее оставленные открытыми, должны быть закрыты при вызове getMoreResults. |
static final int |
CLOSE_CURRENT_RESULT |
Константа, указывающая, что текущий объект ResultSet должен быть закрыт при вызове getMoreResults. |
static final int |
EXECUTE_FAILED |
Константа, указывающая на возникновение ошибки при выполнении пакетного оператора. |
static final int |
KEEP_CURRENT_RESULT |
Константа, указывающая, что текущий объект ResultSet не должен закрываться при вызове getMoreResults. |
static final int |
NO_GENERATED_KEYS |
Константа, указывающая, что автоматически сгенерированные ключи не должны быть доступны для получения. |
static final int |
RETURN_GENERATED_KEYS |
Константа, указывающая, что автоматически сгенерированные ключи должны быть доступны для получения. |
static final int |
SUCCESS_NO_INFO |
Константа, указывающая, что пакетный оператор выполнен успешно, но количество затронутых им строк неизвестно. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addBatch |
Добавляет указанную команду SQL в текущий список команд этого объекта Statement. |
void |
cancel() |
Отменяет выполнение этого объекта Statement, если СУБД и драйвер поддерживают отмену оператора SQL. |
void |
clearBatch() |
Очищает текущий список команд SQL этого объекта Statement. |
void |
clearWarnings() |
Удаляет все предупреждения, зарегистрированные для этого объекта Statement. |
void |
close() |
Немедленно освобождает ресурсы базы данных и JDBC, связанные с этим объектом Statement, вместо того чтобы ждать их освобождения при автоматическом закрытии объекта. |
void |
closeOnCompletion() |
Указывает, что этот объект Statement будет закрыт после закрытия всех зависимых от него наборов результатов. |
default String |
enquoteIdentifier |
Возвращает идентификатор SQL. |
default String |
enquoteLiteral |
Возвращает объект String, заключённый в одинарные кавычки. |
default String |
enquoteNCharLiteral |
Возвращает объект String, представляющий литерал набора национальных символов, заключённый в одинарные кавычки и имеющий префикс в виде заглавной буквы N. |
boolean |
execute |
Выполняет указанный оператор SQL, который может возвращать несколько результатов. |
boolean |
execute |
Выполняет указанный оператор SQL, который может возвращать несколько результатов, и сообщает драйверу, что автоматически сгенерированные ключи должны быть доступны для получения. |
boolean |
execute |
Выполняет указанный оператор SQL, который может возвращать несколько результатов, и сообщает драйверу, что автоматически сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения. |
boolean |
execute |
Выполняет указанный оператор SQL, который может возвращать несколько результатов, и сообщает драйверу, что автоматически сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения. |
int[] |
executeBatch() |
Отправляет пакет команд в базу данных для выполнения и, если все команды выполнены успешно, возвращает массив счётчиков обновления. |
default long[] |
executeLargeBatch() |
Отправляет пакет команд в базу данных для выполнения и, если все команды выполнены успешно, возвращает массив счётчиков обновления. |
default long |
executeLargeUpdate |
Выполняет указанный оператор SQL, который может быть оператором INSERT, UPDATE или DELETE либо оператором SQL, не возвращающим результатов, например оператором DDL SQL. |
default long |
executeLargeUpdate |
Выполняет указанный оператор SQL и с помощью указанного флага сообщает драйверу, должны ли автоматически сгенерированные ключи, полученные в результате работы этого объекта Statement, быть доступны для получения. |
default long |
executeLargeUpdate |
Выполняет указанный оператор SQL и сообщает драйверу, что автоматически сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения. |
default long |
executeLargeUpdate |
Выполняет указанный оператор SQL и сообщает драйверу, что автоматически сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения. |
ResultSet |
executeQuery |
Выполняет указанный оператор SQL, возвращающий один объект ResultSet. |
int |
executeUpdate |
Выполняет указанный оператор SQL, который может быть оператором INSERT, UPDATE или DELETE либо оператором SQL, не возвращающим результатов, например оператором DDL SQL. |
int |
executeUpdate |
Выполняет указанный оператор SQL и с помощью указанного флага сообщает драйверу, должны ли автоматически сгенерированные ключи, полученные в результате работы этого объекта Statement, быть доступны для получения. |
int |
executeUpdate |
Выполняет указанный оператор SQL и сообщает драйверу, что автоматически сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения. |
int |
executeUpdate |
Выполняет указанный оператор SQL и сообщает драйверу, что автоматически сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения. |
Connection |
getConnection() |
Получает объект Connection, создавший этот объект Statement. |
int |
getFetchDirection() |
Получает направление выборки строк из таблиц базы данных, используемое по умолчанию для наборов результатов, созданных этим объектом Statement. |
int |
getFetchSize() |
Получает количество строк набора результатов, используемое по умолчанию в качестве размера выборки для объектов ResultSet, созданных этим объектом Statement. |
ResultSet |
getGeneratedKeys() |
Получает все автоматически сгенерированные ключи, созданные в результате выполнения этого объекта Statement. |
default long |
getLargeMaxRows() |
Получает максимальное количество строк, которое может содержать объект ResultSet, созданный этим объектом Statement. |
default long |
getLargeUpdateCount() |
Получает текущий результат в виде счётчика обновления; если результат является объектом ResultSet или результатов больше нет, возвращается -1. |
int |
getMaxFieldSize() |
Получает максимальное количество байтов, которое может быть возвращено для значений символьных и двоичных столбцов в объекте ResultSet, созданном этим объектом Statement. |
int |
getMaxRows() |
Получает максимальное количество строк, которое может содержать объект ResultSet, созданный этим объектом Statement. |
boolean |
getMoreResults() |
Переходит к следующему результату этого объекта Statement, возвращает true, если это объект ResultSet, и неявно закрывает все текущие объекты ResultSet, полученные с помощью метода getResultSet. |
boolean |
getMoreResults |
Переходит к следующему результату этого объекта Statement, обрабатывает все текущие объекты ResultSet в соответствии с инструкциями, заданными указанным флагом, и возвращает true, если следующий результат является объектом ResultSet. |
int |
getQueryTimeout() |
Получает количество секунд, в течение которых драйвер будет ожидать выполнения объекта Statement. |
ResultSet |
getResultSet() |
Получает текущий результат в виде объекта ResultSet. |
int |
getResultSetConcurrency() |
Получает режим параллелизма набора результатов для объектов ResultSet, созданных этим объектом Statement. |
int |
getResultSetHoldability() |
Получает режим удержания набора результатов для объектов ResultSet, созданных этим объектом Statement. |
int |
getResultSetType() |
Получает тип набора результатов для объектов ResultSet, созданных этим объектом Statement. |
int |
getUpdateCount() |
Получает текущий результат в виде счётчика обновления; если результат является объектом ResultSet или результатов больше нет, возвращается -1. |
SQLWarning |
getWarnings() |
Получает первое предупреждение, зарегистрированное при вызовах этого объекта Statement. |
boolean |
isClosed() |
Проверяет, закрыт ли этот объект Statement. |
boolean |
isCloseOnCompletion() |
Возвращает значение, указывающее, будет ли этот объект Statement закрыт после закрытия всех зависимых от него наборов результатов. |
boolean |
isPoolable() |
Возвращает значение, указывающее, допускает ли Statement использование в пуле. |
default boolean |
isSimpleIdentifier |
Проверяет, является ли identifier простым идентификатором SQL. |
void |
setCursorName |
Задаёт указанное имя курсора SQL String, которое будет использоваться последующими методами execute объекта Statement. |
void |
setEscapeProcessing |
Включает или отключает обработку escape-последовательностей. |
void |
setFetchDirection |
Даёт драйверу подсказку о направлении обработки строк в объектах ResultSet, создаваемых с помощью этого объекта Statement. |
void |
setFetchSize |
Даёт драйверу JDBC подсказку о количестве строк, которые следует извлекать из базы данных при необходимости получить дополнительные строки для объектов ResultSet, созданных этим объектом Statement. |
default void |
setLargeMaxRows |
Устанавливает указанное ограничение на максимальное количество строк, которое может содержать любой объект ResultSet, созданный этим объектом Statement. |
void |
setMaxFieldSize |
Устанавливает ограничение на максимальное количество байтов, которое может быть возвращено для значений символьных и двоичных столбцов в объекте ResultSet, созданном этим объектом Statement. |
void |
setMaxRows |
Устанавливает указанное ограничение на максимальное количество строк, которое может содержать любой объект ResultSet, созданный этим объектом Statement. |
void |
setPoolable |
Запрашивает, чтобы объект Statement допускал или не допускал использование в пуле. |
void |
setQueryTimeout |
Устанавливает указанное количество секунд, в течение которых драйвер будет ожидать выполнения объекта Statement. |
Методы, объявленные в интерфейсе Wrapper
isWrapperFor, unwrap
Подробное описание полей
CLOSE_CURRENT_RESULT
static final int CLOSE_CURRENT_RESULT
ResultSet следует закрыть при вызове getMoreResults.- Начиная с версии:
- 1.4
- См. также:
KEEP_CURRENT_RESULT
static final int KEEP_CURRENT_RESULT
ResultSet не следует закрывать при вызове getMoreResults.- Начиная с версии:
- 1.4
- См. также:
CLOSE_ALL_RESULTS
static final int CLOSE_ALL_RESULTS
ResultSet, которые ранее были оставлены открытыми, следует закрыть при вызове getMoreResults.- Начиная с версии:
- 1.4
- См. также:
SUCCESS_NO_INFO
static final int SUCCESS_NO_INFO
- Начиная с версии:
- 1.4
- См. также:
EXECUTE_FAILED
static final int EXECUTE_FAILED
- Начиная с версии:
- 1.4
- См. также:
RETURN_GENERATED_KEYS
static final int RETURN_GENERATED_KEYS
- Начиная с версии:
- 1.4
- См. также:
NO_GENERATED_KEYS
static final int NO_GENERATED_KEYS
- Начиная с версии:
- 1.4
- См. также:
Подробное описание методов
executeQuery
ResultSet executeQuery(String sql) throws SQLException
ResultSet. Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql— инструкция SQL, отправляемая в базу данных, обычно статическая инструкция SQLSELECT - Возвращает:
- объект
ResultSet, содержащий данные, полученные в результате указанного запроса; никогда неnull - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, указанная инструкция SQL возвращает что-либо, отличное от одного объектаResultSet, метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException— если драйвер определил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и как минимум попытался отменить выполняющийся в данный моментStatement
executeUpdate
int executeUpdate(String sql) throws SQLException
INSERT, UPDATE или DELETE, либо инструкция SQL, не возвращающая данных, например инструкция DDL SQL. Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql— инструкция языка манипулирования данными SQL (DML), напримерINSERT,UPDATEилиDELETE; либо инструкция SQL, не возвращающая данных, например инструкция DDL. - Возвращает:
- либо (1) количество строк для инструкций языка манипулирования данными SQL (DML), либо (2) 0 для инструкций SQL, не возвращающих данных
- Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, указанная инструкция SQL возвращает объектResultSet, метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException— если драйвер определил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и как минимум попытался отменить выполняющийся в данный моментStatement
close
void close() throws SQLException
Statement, вместо того чтобы ждать их автоматического освобождения. Как правило, рекомендуется освобождать ресурсы сразу после завершения работы с ними, чтобы не занимать ресурсы базы данных. Вызов метода close для уже закрытого объекта Statement не имеет эффекта.
Примечание:При закрытии объекта Statement закрывается и его текущий объект ResultSet, если он существует.
- Определено в:
-
closeв интерфейсеAutoCloseable - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных
getMaxFieldSize
int getMaxFieldSize() throws SQLException
ResultSet, созданном этим объектом Statement. Это ограничение применяется только к столбцам BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR и LONGVARCHAR. Если ограничение превышено, лишние данные без предупреждения отбрасываются.- Возвращает:
- текущее ограничение размера столбцов, содержащих символьные и двоичные значения; ноль означает отсутствие ограничения
- Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
setMaxFieldSize
void setMaxFieldSize(int max) throws SQLException
ResultSet, созданном этим объектом Statement. Это ограничение применяется только к полям BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR и LONGVARCHAR. Если ограничение превышено, лишние данные без предупреждения отбрасываются. Для максимальной переносимости используйте значения больше 256.- Параметры:
-
max— новое ограничение размера столбца в байтах; ноль означает отсутствие ограничения - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили не выполнено условиеmax >= 0 - См. также:
getMaxRows
int getMaxRows() throws SQLException
ResultSet, созданный этим объектом Statement. Если это ограничение превышено, лишние строки без предупреждения отбрасываются.- Возвращает:
- текущее максимальное количество строк для объекта
ResultSet, созданного этим объектомStatement; ноль означает отсутствие ограничения - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
setMaxRows
void setMaxRows(int max) throws SQLException
ResultSet, созданный этим объектом Statement. Если ограничение превышено, лишние строки без предупреждения отбрасываются.- Параметры:
-
max— новое ограничение на максимальное количество строк; ноль означает отсутствие ограничения - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили не выполнено условиеmax >= 0 - См. также:
setEscapeProcessing
void setEscapeProcessing(boolean enable) throws SQLException
Для изменения поведения обработки escape-последовательностей по умолчанию можно использовать свойство Connection и DataSource escapeProcessing. Значение true (по умолчанию) включает обработку escape-последовательностей для всех объектов Statement. Значение false отключает обработку escape-последовательностей для всех объектов Statement. Метод setEscapeProcessing позволяет задать поведение обработки escape-последовательностей для отдельного объекта Statement.
Примечание: поскольку подготовленные инструкции обычно разбираются до вызова этого метода, отключение обработки escape-последовательностей для объектов PreparedStatements не будет иметь эффекта.
- Параметры:
-
enable—trueдля включения обработки escape-последовательностей;falseдля ее отключения - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement
getQueryTimeout
int getQueryTimeout() throws SQLException
Statement. Если это ограничение превышено, возникает исключение SQLException.- Возвращает:
- текущее ограничение времени ожидания запроса в секундах; ноль означает отсутствие ограничения
- Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
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 - См. также:
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
String в качестве имени курсора SQL; это имя будет использоваться последующими методами Statement объекта execute. Затем это имя можно использовать в инструкциях SQL с позиционированным обновлением или удалением для идентификации текущей строки в объекте ResultSet, созданном этой инструкцией. Если база данных не поддерживает позиционированное обновление/удаление, этот метод ничего не делает. Чтобы обеспечить курсору надлежащий уровень изоляции для поддержки обновлений, инструкция SELECT курсора должна иметь вид SELECT FOR UPDATE. Если FOR UPDATE отсутствует, позиционированные обновления могут завершиться неудачей. Примечание: По определению, позиционированные обновления и удаления должны выполняться другим объектом Statement, отличным от того, который создал используемый для позиционирования объект ResultSet. Кроме того, имена курсоров должны быть уникальными в пределах одного соединения.
- Параметры:
-
name— новое имя курсора, которое должно быть уникальным в пределах одного соединения - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод
execute
boolean execute(String sql) throws SQLException
Метод execute выполняет инструкцию SQL и указывает тип первого результата. Затем необходимо использовать методы getResultSet или getUpdateCount для получения результата и метод getMoreResults для перехода к последующим результатам.
Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql— любая инструкция SQL - Возвращает:
-
true, если первый результат — объектResultSet;false, если это счетчик обновлений или результатов нет - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException— если драйвер определил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и как минимум попытался отменить выполняющийся в данный моментStatement - См. также:
getResultSet
ResultSet getResultSet() throws SQLException
ResultSet. Этот метод следует вызывать только один раз для каждого результата.- Возвращает:
- текущий результат в виде объекта
ResultSetилиnull, если результат является счетчиком обновлений или других результатов нет - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
getUpdateCount
int getUpdateCount() throws SQLException
ResultSet или других результатов нет, возвращается -1. Этот метод следует вызывать только один раз для каждого результата.- Возвращает:
- текущий результат в виде счетчика обновлений; -1, если текущий результат является объектом
ResultSetили других результатов нет - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
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 - См. также:
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
int getFetchDirection() throws SQLException
Statement. Если направление выборки для этого объекта Statement не было задано вызовом метода setFetchDirection, возвращаемое значение зависит от реализации.- Возвращает:
- направление выборки по умолчанию для наборов результатов, созданных этим объектом
Statement - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - Начиная с версии:
- 1.2
- См. также:
setFetchSize
void setFetchSize(int rows) throws SQLException
ResultSet, созданных этим Statement, потребуются дополнительные строки. Если указано нулевое значение, подсказка игнорируется. Значение по умолчанию — ноль.- Параметры:
-
rows— количество строк для выборки - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили не выполнено условиеrows >= 0. - Начиная с версии:
- 1.2
- См. также:
getFetchSize
int getFetchSize() throws SQLException
ResultSet, созданных этим объектом Statement. Если размер выборки для этого объекта Statement не был задан вызовом метода setFetchSize, возвращаемое значение зависит от реализации.- Возвращает:
- размер выборки по умолчанию для наборов результатов, созданных этим объектом
Statement - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - Начиная с версии:
- 1.2
- См. также:
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
Statement. Команды из этого списка можно выполнить пакетом, вызвав метод executeBatch. Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql— обычно это инструкция SQLINSERTилиUPDATE - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, драйвер не поддерживает пакетные обновления либо метод вызван дляPreparedStatementилиCallableStatement - Начиная с версии:
- 1.2
- См. также:
clearBatch
void clearBatch() throws SQLException
Statement.- Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили драйвер не поддерживает пакетные обновления - Начиная с версии:
- 1.2
- См. также:
executeBatch
int[] executeBatch() throws SQLException
int возвращаемого массива упорядочены в соответствии с командами в пакете, которые, в свою очередь, расположены в порядке их добавления в пакет. Элементы массива, возвращаемого методом executeBatch, могут иметь одно из следующих значений: - Число, большее или равное нулю, — указывает, что команда успешно обработана, и является количеством обновлённых строк, которое показывает число строк в базе данных, затронутых выполнением команды
- Значение
SUCCESS_NO_INFO— указывает, что команда успешно обработана, но количество затронутых строк неизвестноЕсли одна из команд пакетного обновления не выполнена должным образом, этот метод выбрасывает
BatchUpdateException, и драйвер JDBC может продолжить или не продолжить обработку оставшихся команд в пакете. Однако поведение драйвера должно быть согласованным для конкретной СУБД: он должен либо всегда продолжать обработку команд, либо никогда её не продолжать. Если после сбоя драйвер продолжает обработку, массив, возвращаемый методомBatchUpdateException.getUpdateCounts, будет содержать столько же элементов, сколько команд в пакете, и как минимум один из элементов будет иметь следующее значение: - Значение
EXECUTE_FAILED— указывает, что команда не была выполнена успешно; такое значение встречается только в том случае, если драйвер продолжает обработку команд после сбоя команды
Возможные реализации и возвращаемые значения были изменены в Java 2 SDK, Standard Edition, версии 1.3, чтобы учесть возможность продолжения обработки команд в пакетном обновлении после выбрасывания объекта BatchUpdateException.
- Возвращает:
- массив количества обновлённых строк, содержащий по одному элементу для каждой команды в пакете. Элементы массива упорядочены в соответствии с порядком добавления команд в пакет.
- Выбрасывает:
-
SQLException— если возникает ошибка доступа к базе данных, этот метод вызывается для закрытогоStatementили драйвер не поддерживает пакетные операторы. ВыбрасываетBatchUpdateException(подклассSQLException), если одна из отправленных в базу данных команд не выполнена должным образом или пытается вернуть набор результатов. -
SQLTimeoutException— если драйвер определил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и предпринял хотя бы попытку отменить выполняющийся в данный моментStatement - Начиная с версии:
- 1.2
- См. также:
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
- См. также:
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
Statement. Драйвер проигнорирует флаг, если оператор SQL не является оператором INSERT или оператором SQL, способным возвращать автоматически сгенерированные ключи (список таких операторов зависит от производителя). Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
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.4
executeUpdate
int executeUpdate(String sql, int[] columnIndexes) throws SQLException
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
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
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
- См. также:
execute
boolean execute(String sql, int[] columnIndexes) throws SQLException
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
- См. также:
execute
boolean execute(String sql, String[] columnNames) throws SQLException
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
- См. также:
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 в пул. Указанное значение является подсказкой для реализации пула операторов, указывающей, хочет ли приложение, чтобы оператор помещался в пул. Решение об использовании этой подсказки принимает менеджер пула операторов. Значение, определяющее возможность помещения оператора в пул, применяется как к внутренним кэшам операторов, реализованным драйвером, так и к внешним кэшам операторов, реализованным серверами приложений и другими приложениями.
По умолчанию созданный объект Statement не помещается в пул, а созданные объекты PreparedStatement и CallableStatement помещаются в пул.
- Параметры:
-
poolable— указывает, что оператор следует поместить в пул, если значение равно true, и не следует помещать в пул, если значение равно false - Выбрасывает:
-
SQLException— если этот метод вызывается для закрытогоStatement - Начиная с версии:
- 1.6
isPoolable
boolean isPoolable() throws SQLException
Statement в пул.- Возвращает:
-
true, еслиStatementможно помещать в пул; в противном случае —false - Выбрасывает:
-
SQLException— если этот метод вызывается для закрытогоStatement - Начиная с версии:
- 1.6
- См. также:
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
- См. также:
setLargeMaxRows
default void setLargeMaxRows(long max) throws SQLException
ResultSet, созданного этим объектом Statement, ограничение на максимальное количество строк, равное указанному числу. Если ограничение превышено, лишние строки без уведомления отбрасываются. Этот метод следует использовать, если ограничение на количество строк может превышать значение Integer.MAX_VALUE.
Реализация по умолчанию выбрасывает UnsupportedOperationException
- Параметры:
-
max— новое ограничение на максимальное количество строк; ноль означает отсутствие ограничения - Выбрасывает:
-
SQLException— если возникает ошибка доступа к базе данных, этот метод вызывается для закрытогоStatementили условиеmax >= 0не выполняется - Начиная с версии:
- 1.8
- См. также:
getLargeMaxRows
default long getLargeMaxRows() throws SQLException
ResultSet, созданный этим объектом Statement. Если это ограничение превышено, лишние строки без уведомления отбрасываются. Этот метод следует использовать, если возвращаемое ограничение на количество строк может превышать значение Integer.MAX_VALUE.
Реализация по умолчанию возвращает 0
- Возвращает:
- текущее максимальное количество строк для объекта
ResultSet, созданного этим объектомStatement; ноль означает отсутствие ограничения - Выбрасывает:
-
SQLException— если возникает ошибка доступа к базе данных или этот метод вызывается для закрытогоStatement - Начиная с версии:
- 1.8
- См. также:
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
- См. также:
executeLargeUpdate
default long executeLargeUpdate(String sql) throws SQLException
INSERT, UPDATE или DELETE либо оператором SQL, не возвращающим результатов, например оператором DDL SQL. Этот метод следует использовать, если количество возвращаемых строк может превысить 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
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
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
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
enquoteLiteral
default String enquoteLiteral(String val) throws SQLException
String, заключённый в одинарные кавычки. Каждая одинарная кавычка в строке заменяется двумя одинарными кавычками.
Примеры преобразования: Значение Результат Hello 'Hello' G'Day 'G''Day' 'G''Day' '''G''''Day''' I'''M 'I''''''M'
- Примечание к реализации:
- Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
- Параметры:
-
val— строка символов - Возвращает:
- строку, заключённую в одинарные кавычки, в которой каждая одинарная кавычка заменена двумя одинарными кавычками
- Выбрасывает:
-
NullPointerException— если val имеет значениеnull -
SQLException— если произошла ошибка доступа к базе данных - Начиная с:
- 9
enquoteIdentifier
default String enquoteIdentifier(String identifier, boolean alwaysQuote) throws SQLException
identifier является простым идентификатором SQL: - Возвращает исходное значение, если
alwaysQuoteимеет значениеfalse - Возвращает идентификатор с ограничителями, если
alwaysQuoteимеет значениеtrue
identifier не является простым идентификатором SQL, identifier заключается в двойные кавычки, если он ещё не заключён в них. Если источник данных не поддерживает двойные кавычки для идентификаторов с ограничителями, идентификатор следует заключить в строку, возвращаемую методом DatabaseMetaData.getIdentifierQuoteString(). Если источник данных не поддерживает идентификаторы с ограничителями, следует выбросить SQLFeatureNotSupportedException. Если identifier содержит символы, недопустимые в идентификаторе с ограничителями, или длина идентификатора недопустима для источника данных, будет выброшено SQLException.
- Требования к реализации:
- Реализация по умолчанию использует следующие критерии для определения допустимого простого идентификатора SQL:
- Строка не заключена в двойные кавычки
- Первый символ — буква от a до z или от A до Z
- Имя содержит только буквенно-цифровые символы или символ «_»
SQLException, если:-
identifierсодержит символnullили двойную кавычку и не является простым идентификатором SQL. - Длина
identifierменьше 1 или больше 128 символов
Примеры преобразования: идентификатор alwaysQuote Результат Hello false Hello Hello true "Hello" G'Day false "G'Day" "Bruce Wayne" false "Bruce Wayne" "Bruce Wayne" true "Bruce Wayne" GoodDay$ false "GoodDay$" Hello"World false SQLException "Hello"World" false SQLException - Примечание к реализации:
- Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
- Параметры:
-
identifier— идентификатор SQL -
alwaysQuote— указывает, следует ли возвращать простой идентификатор SQL в виде идентификатора в кавычках - Возвращает:
- простой идентификатор SQL или идентификатор с ограничителями
- Выбрасывает:
-
SQLException— если identifier не является допустимым идентификатором -
SQLFeatureNotSupportedException— если источник данных не поддерживает идентификаторы с ограничителями -
NullPointerException— если identifier имеет значениеnull - Начиная с:
- 9
isSimpleIdentifier
default boolean isSimpleIdentifier(String identifier) throws SQLException
identifier простым идентификатором SQL.- Требования к реализации:
- Реализация по умолчанию использует следующие критерии для определения допустимого простого идентификатора SQL:
- Строка не заключена в двойные кавычки
- Первый символ — буква от a до z или от A до Z
- Строка содержит только буквенно-цифровые символы или символ «_»
- Длина строки составляет от 1 до 128 символов включительно
Примеры преобразования: идентификатор Простой идентификатор Hello true G'Day false "Bruce Wayne" false GoodDay$ false Hello"World false "Hello"World" false - Примечание к реализации:
- Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
- Параметры:
-
identifier— идентификатор SQL - Возвращает:
- true, если это простой идентификатор SQL; в противном случае false
- Выбрасывает:
-
NullPointerException— если identifier имеет значениеnull -
SQLException— если произошла ошибка доступа к базе данных - Начиная с:
- 9
enquoteNCharLiteral
default String enquoteNCharLiteral(String val) throws SQLException
String, представляющий литерал национального набора символов, заключённый в одинарные кавычки и снабжённый префиксом в виде заглавной буквы N. Каждая одинарная кавычка в строке заменяется двумя одинарными кавычками.
Примеры преобразования: Значение Результат Hello N'Hello' G'Day N'G''Day' 'G''Day' N'''G''''Day''' I'''M N'I''''''M' N'Hello' N'N''Hello'''
- Примечание к реализации:
- Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных. Реализация enquoteNCharLiteral может принимать другой набор символов, чем тот, который принимает реализация enquoteLiteral того же драйвера.
- Параметры:
-
val— строка символов - Возвращает:
- результат замены каждого символа одинарной кавычки в аргументе двумя одинарными кавычками; перед всей полученной строкой добавляется префикс «N».
- Выбрасывает:
-
NullPointerException— если val имеет значениеnull -
SQLException— если произошла ошибка доступа к базе данных - Начиная с:
- 9
© 1993, 2025, 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/25/docs/api/java.sql/java/sql/Statement.html