Spec-Zone.ru › OpenJDK 25

Интерфейс Statement

Все суперинтерфейсы:
AutoCloseable, Wrapper
Все известные подинтерфейсы:
CallableStatement, PreparedStatement
public interface Statement extends Wrapper, AutoCloseable

Объект, используемый для выполнения статического оператора SQL и получения результатов его выполнения.

По умолчанию одновременно может быть открыт только один объект ResultSet для каждого объекта Statement. Поэтому, если чтение одного объекта ResultSet чередуется с чтением другого, каждый из них должен быть создан разными объектами Statement. Все методы выполнения в интерфейсе Statement неявно закрывают текущий объект ResultSet оператора, если он открыт.

Начиная с:
1.1
См. также:
  • Connection.createStatement()
  • ResultSet

Краткое описание полей

Модификатор и тип Поле Описание
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(String sql)
Добавляет указанную команду SQL в текущий список команд этого объекта Statement.
void cancel()
Отменяет выполнение этого объекта Statement, если СУБД и драйвер поддерживают отмену оператора SQL.
void clearBatch()
Очищает текущий список команд SQL этого объекта Statement.
void clearWarnings()
Удаляет все предупреждения, зарегистрированные для этого объекта Statement.
void close()
Немедленно освобождает ресурсы базы данных и JDBC, связанные с этим объектом Statement, вместо того чтобы ждать их освобождения при автоматическом закрытии объекта.
void closeOnCompletion()
Указывает, что этот объект Statement будет закрыт после закрытия всех зависимых от него наборов результатов.
default String enquoteIdentifier(String identifier, boolean alwaysQuote)
Возвращает идентификатор SQL.
default String enquoteLiteral(String val)
Возвращает объект String, заключённый в одинарные кавычки.
default String enquoteNCharLiteral(String val)
Возвращает объект String, представляющий литерал набора национальных символов, заключённый в одинарные кавычки и имеющий префикс в виде заглавной буквы N.
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, который может быть оператором INSERT, UPDATE или DELETE либо оператором SQL, не возвращающим результатов, например оператором DDL SQL.
default long executeLargeUpdate(String sql, int autoGeneratedKeys)
Выполняет указанный оператор SQL и с помощью указанного флага сообщает драйверу, должны ли автоматически сгенерированные ключи, полученные в результате работы этого объекта Statement, быть доступны для получения.
default long executeLargeUpdate(String sql, int[] columnIndexes)
Выполняет указанный оператор SQL и сообщает драйверу, что автоматически сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения.
default long executeLargeUpdate(String sql, String[] columnNames)
Выполняет указанный оператор SQL и сообщает драйверу, что автоматически сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения.
ResultSet executeQuery(String sql)
Выполняет указанный оператор SQL, возвращающий один объект ResultSet.
int executeUpdate(String sql)
Выполняет указанный оператор SQL, который может быть оператором INSERT, UPDATE или DELETE либо оператором SQL, не возвращающим результатов, например оператором DDL SQL.
int executeUpdate(String sql, int autoGeneratedKeys)
Выполняет указанный оператор SQL и с помощью указанного флага сообщает драйверу, должны ли автоматически сгенерированные ключи, полученные в результате работы этого объекта Statement, быть доступны для получения.
int executeUpdate(String sql, int[] columnIndexes)
Выполняет указанный оператор SQL и сообщает драйверу, что автоматически сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения.
int executeUpdate(String sql, String[] columnNames)
Выполняет указанный оператор 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(int current)
Переходит к следующему результату этого объекта 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(String identifier)
Проверяет, является ли identifier простым идентификатором SQL.
void setCursorName(String name)
Задаёт указанное имя курсора SQL String, которое будет использоваться последующими методами execute объекта Statement.
void setEscapeProcessing(boolean enable)
Включает или отключает обработку escape-последовательностей.
void setFetchDirection(int direction)
Даёт драйверу подсказку о направлении обработки строк в объектах ResultSet, создаваемых с помощью этого объекта Statement.
void setFetchSize(int rows)
Даёт драйверу JDBC подсказку о количестве строк, которые следует извлекать из базы данных при необходимости получить дополнительные строки для объектов ResultSet, созданных этим объектом Statement.
default void setLargeMaxRows(long max)
Устанавливает указанное ограничение на максимальное количество строк, которое может содержать любой объект ResultSet, созданный этим объектом Statement.
void setMaxFieldSize(int max)
Устанавливает ограничение на максимальное количество байтов, которое может быть возвращено для значений символьных и двоичных столбцов в объекте ResultSet, созданном этим объектом Statement.
void setMaxRows(int max)
Устанавливает указанное ограничение на максимальное количество строк, которое может содержать любой объект ResultSet, созданный этим объектом Statement.
void setPoolable(boolean poolable)
Запрашивает, чтобы объект Statement допускал или не допускал использование в пуле.
void setQueryTimeout(int seconds)
Устанавливает указанное количество секунд, в течение которых драйвер будет ожидать выполнения объекта 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
Выполняет указанную инструкцию SQL, которая возвращает один объект ResultSet.

Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.

Параметры:
sql — инструкция SQL, отправляемая в базу данных, обычно статическая инструкция SQL SELECT
Возвращает:
объект ResultSet, содержащий данные, полученные в результате указанного запроса; никогда не null
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement, указанная инструкция SQL возвращает что-либо, отличное от одного объекта ResultSet, метод вызван для PreparedStatement или CallableStatement
SQLTimeoutException — если драйвер определил, что превышено значение времени ожидания, заданное методом setQueryTimeout, и как минимум попытался отменить выполняющийся в данный момент Statement

executeUpdate

int executeUpdate(String sql) throws SQLException
Выполняет указанную инструкцию SQL, которой может быть инструкция 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
Немедленно освобождает ресурсы базы данных и JDBC, используемые этим объектом 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(int)

setMaxFieldSize

void setMaxFieldSize(int max) throws SQLException
Задает ограничение на максимальное количество байтов, которое может быть возвращено для значений символьных и двоичных столбцов в объекте ResultSet, созданном этим объектом Statement. Это ограничение применяется только к полям BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR и LONGVARCHAR. Если ограничение превышено, лишние данные без предупреждения отбрасываются. Для максимальной переносимости используйте значения больше 256.
Параметры:
max — новое ограничение размера столбца в байтах; ноль означает отсутствие ограничения
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement или не выполнено условие max >= 0
См. также:
  • getMaxFieldSize()

getMaxRows

int getMaxRows() throws SQLException
Возвращает максимальное количество строк, которое может содержать объект ResultSet, созданный этим объектом Statement. Если это ограничение превышено, лишние строки без предупреждения отбрасываются.
Возвращает:
текущее максимальное количество строк для объекта ResultSet, созданного этим объектом Statement; ноль означает отсутствие ограничения
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
См. также:
  • setMaxRows(int)

setMaxRows

void setMaxRows(int max) throws SQLException
Задает указанное ограничение на максимальное количество строк, которое может содержать любой объект ResultSet, созданный этим объектом Statement. Если ограничение превышено, лишние строки без предупреждения отбрасываются.
Параметры:
max — новое ограничение на максимальное количество строк; ноль означает отсутствие ограничения
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement или не выполнено условие max >= 0
См. также:
  • getMaxRows()

setEscapeProcessing

void setEscapeProcessing(boolean enable) throws SQLException
Включает или отключает обработку escape-последовательностей. Если сканирование escape-последовательностей включено (по умолчанию), драйвер заменит их перед отправкой инструкции SQL в базу данных.

Для изменения поведения обработки 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(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
Задает указанное 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
Выполняет указанную инструкцию 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(String)

getUpdateCount

int getUpdateCount() throws SQLException
Возвращает текущий результат в виде счетчика обновлений; если результат является объектом ResultSet или других результатов нет, возвращается -1. Этот метод следует вызывать только один раз для каждого результата.
Возвращает:
текущий результат в виде счетчика обновлений; -1, если текущий результат является объектом ResultSet или других результатов нет
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
См. также:
  • execute(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(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(String)
  • DatabaseMetaData.supportsBatchUpdates()

executeBatch

int[] executeBatch() throws SQLException
Отправляет пакет команд в базу данных для выполнения и, если все команды выполнены успешно, возвращает массив количества обновлённых строк. Элементы int возвращаемого массива упорядочены в соответствии с командами в пакете, которые, в свою очередь, расположены в порядке их добавления в пакет. Элементы массива, возвращаемого методом executeBatch, могут иметь одно из следующих значений:
  1. Число, большее или равное нулю, — указывает, что команда успешно обработана, и является количеством обновлённых строк, которое показывает число строк в базе данных, затронутых выполнением команды
  2. Значение SUCCESS_NO_INFO — указывает, что команда успешно обработана, но количество затронутых строк неизвестно

    Если одна из команд пакетного обновления не выполнена должным образом, этот метод выбрасывает BatchUpdateException, и драйвер JDBC может продолжить или не продолжить обработку оставшихся команд в пакете. Однако поведение драйвера должно быть согласованным для конкретной СУБД: он должен либо всегда продолжать обработку команд, либо никогда её не продолжать. Если после сбоя драйвер продолжает обработку, массив, возвращаемый методом BatchUpdateException.getUpdateCounts, будет содержать столько же элементов, сколько команд в пакете, и как минимум один из элементов будет иметь следующее значение:

  3. Значение EXECUTE_FAILED — указывает, что команда не была выполнена успешно; такое значение встречается только в том случае, если драйвер продолжает обработку команд после сбоя команды

Возможные реализации и возвращаемые значения были изменены в Java 2 SDK, Standard Edition, версии 1.3, чтобы учесть возможность продолжения обработки команд в пакетном обновлении после выбрасывания объекта BatchUpdateException.

Возвращает:
массив количества обновлённых строк, содержащий по одному элементу для каждой команды в пакете. Элементы массива упорядочены в соответствии с порядком добавления команд в пакет.
Выбрасывает:
SQLException — если возникает ошибка доступа к базе данных, этот метод вызывается для закрытого Statement или драйвер не поддерживает пакетные операторы. Выбрасывает BatchUpdateException (подкласс SQLException), если одна из отправленных в базу данных команд не выполнена должным образом или пытается вернуть набор результатов.
SQLTimeoutException — если драйвер определил, что превышено значение времени ожидания, заданное методом setQueryTimeout, и предпринял хотя бы попытку отменить выполняющийся в данный момент Statement
Начиная с версии:
1.2
См. также:
  • addBatch(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(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_KEYS Statement.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
Выполняет указанный оператор 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 в пул. Указанное значение является подсказкой для реализации пула операторов, указывающей, хочет ли приложение, чтобы оператор помещался в пул. Решение об использовании этой подсказки принимает менеджер пула операторов.

Значение, определяющее возможность помещения оператора в пул, применяется как к внутренним кэшам операторов, реализованным драйвером, так и к внешним кэшам операторов, реализованным серверами приложений и другими приложениями.

По умолчанию созданный объект 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(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, могут иметь одно из следующих значений:
  1. Число, большее или равное нулю, — означает, что команда успешно обработана, и представляет собой счётчик обновления, указывающий количество строк базы данных, затронутых выполнением команды
  2. Значение SUCCESS_NO_INFO — означает, что команда успешно обработана, но количество затронутых строк неизвестно

    Если одна из команд пакетного обновления выполнена некорректно, этот метод выбрасывает BatchUpdateException, и драйвер JDBC может продолжить или не продолжить обработку оставшихся команд в пакете. Однако поведение драйвера должно быть согласовано с конкретной СУБД: он должен либо всегда продолжать обработку команд, либо никогда её не продолжать. Если драйвер продолжает обработку после сбоя, возвращаемый методом BatchUpdateException.getLargeUpdateCounts массив будет содержать столько элементов, сколько команд в пакете, и как минимум один из элементов будет иметь следующее значение:

  3. Значение EXECUTE_FAILED — означает, что команда не была выполнена успешно; такое значение встречается только в том случае, если драйвер продолжает обработку команд после сбоя одной из них

Этот метод следует использовать, если количество возвращаемых строк может превысить Integer.MAX_VALUE.

Реализация по умолчанию выбрасывает UnsupportedOperationException

Возвращает:
массив счётчиков обновления, содержащий по одному элементу для каждой команды в пакете. Элементы массива расположены в порядке добавления команд в пакет.
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных, метод вызван для закрытого Statement или драйвер не поддерживает пакетные операторы. Выбрасывает BatchUpdateException (подкласс SQLException), если одна из отправленных в базу данных команд выполнена некорректно или пытается вернуть набор результатов.
SQLTimeoutException — если драйвер определил, что превышено значение времени ожидания, заданное методом setQueryTimeout, и как минимум попытался отменить выполняющийся в данный момент Statement
Начиная с:
1.8
См. также:
  • addBatch(String)
  • DatabaseMetaData.supportsBatchUpdates()

executeLargeUpdate

default long executeLargeUpdate(String sql) throws SQLException
Выполняет заданный оператор SQL, который может быть оператором 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
Выполняет заданный оператор SQL и сообщает драйверу с помощью заданного флага, следует ли сделать доступными для получения автоматически сгенерированные ключи, созданные этим объектом Statement. Драйвер проигнорирует флаг, если оператор SQL не является оператором INSERT или оператором SQL, способным возвращать автоматически сгенерированные ключи (перечень таких операторов зависит от поставщика).

Этот метод следует использовать, если количество возвращаемых строк может превысить Integer.MAX_VALUE.

Примечание: этот метод нельзя вызывать для PreparedStatement или CallableStatement.

Реализация по умолчанию выбрасывает SQLFeatureNotSupportedException

Параметры:
sql — оператор языка манипулирования данными SQL (DML), например INSERT, UPDATE или DELETE, либо оператор SQL, не возвращающий результатов, например оператор DDL.
autoGeneratedKeys — флаг, указывающий, следует ли сделать автоматически сгенерированные ключи доступными для получения; одно из следующих значений: Statement.RETURN_GENERATED_KEYS Statement.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

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
Возвращает идентификатор SQL. Если 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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API