Spec-Zone.ru › OpenJDK 27

Интерфейс Statement

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

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

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

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

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

Модификатор и тип Поле Описание
static final int CLOSE_ALL_RESULTS
Константа, указывающая, что при вызове getMoreResults следует закрыть все объекты ResultSet, которые ранее оставались открытыми.
static final int CLOSE_CURRENT_RESULT
Константа, указывающая, что при вызове getMoreResults следует закрыть текущий объект ResultSet.
static final int EXECUTE_FAILED
Константа, указывающая, что при выполнении пакетного оператора произошла ошибка.
static final int KEEP_CURRENT_RESULT
Константа, указывающая, что при вызове getMoreResults не следует закрывать текущий объект ResultSet.
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 alwaysDelimit)
Возвращает simple SQL identifier или идентификатор с разделителями.
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)
Включает или отключает обработку экранирования.
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
Модификатор и тип Метод Описание
boolean isWrapperFor(Class<?> iface)
Возвращает true, если этот объект реализует интерфейс, переданный в качестве аргумента, или прямо либо косвенно является оболочкой объекта, который его реализует.
<T> T unwrap(Class<T> iface)
Возвращает объект, реализующий указанный интерфейс, чтобы обеспечить доступ к нестандартным методам или стандартным методам, не предоставляемым прокси-объектом.

Подробное описание полей

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. Если указано значение 0, подсказка игнорируется. Значение по умолчанию — 0.
Параметры:
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'
Требования к реализации:
Реализация по умолчанию создает литерал следующим образом: "'" + val.replace("'", "''") + "'".
Примечание по реализации:
Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
Параметры:
val — строка символов
Возвращает:
строку, заключенную в одинарные кавычки, в которой каждая одинарная кавычка заменена двумя одинарными кавычками
Выбрасывает:
NullPointerException — если val равен null
SQLException — если произошла ошибка доступа к базе данных
Начиная с:
9

enquoteIdentifier

default String enquoteIdentifier(String identifier, boolean alwaysDelimit) throws SQLException
Возвращает simple SQL identifier или идентификатор с ограничителями. Идентификатор с ограничителями представляет имя объекта базы данных, например таблицы, столбца или представления, заключенное в ограничитель, которым обычно служат двойные кавычки, определенные стандартом SQL.

Если identifier является простым идентификатором SQL:

  • Если alwaysDelimit равен false, возвращает исходное значение
  • если alwaysDelimit равен true, заключает исходное значение в кавычки и возвращает его как идентификатор с ограничителями
Если identifier не является простым идентификатором SQL, возвращаемый идентификатор с ограничителями identifier должен быть заключен в ограничитель, возвращаемый методом DatabaseMetaData.getIdentifierQuoteString(). Если источник данных не поддерживает идентификаторы с ограничителями, выбрасывается SQLFeatureNotSupportedException.

SQLException будет выброшено, если identifier содержит недопустимые символы для идентификатора с ограничителями или длина идентификатора недопустима для источника данных.

Требования к реализации:
Реализация по умолчанию использует следующие критерии для определения допустимого простого идентификатора SQL:
  • Строка не заключена в двойные кавычки
  • Первый символ — буква от a ('\0061') до z ('\u007A') или от A ('\u0041') до Z ('\u005A')
  • Имя содержит только буквенно-цифровые символы ([0-9A-Za-z]) или символ «_»
Реализация по умолчанию выбрасывает SQLException, если:
  • DatabaseMetaData.getIdentifierQuoteString() не возвращает двойную кавычку
  • identifier содержит символ null или двойную кавычку
  • Длина identifier меньше 1 или больше 128 символов
Примеры преобразования:
идентификатор alwaysDelimit Результат
Hello false Hello
Hello true "Hello"
G'Day false "G'Day"
"Bruce Wayne" false "Bruce Wayne"
"Bruce Wayne" true "Bruce Wayne"
"select" false "select"
"select" true "select"
GoodDay$ false "GoodDay$"
Hello"World false SQLException
"Hello"World" false SQLException
Примечание по реализации:
Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
Параметры:
identifier — идентификатор SQL
alwaysDelimit — указывает, следует ли возвращать простой идентификатор SQL как идентификатор с ограничителями
Возвращает:
простой идентификатор SQL или идентификатор с ограничителями
Выбрасывает:
SQLException — если идентификатор недопустим
SQLFeatureNotSupportedException — если источник данных не поддерживает идентификаторы с ограничителями
NullPointerException — если identifier равен null
Начиная с:
9

isSimpleIdentifier

default boolean isSimpleIdentifier(String identifier) throws SQLException
Возвращает признак того, что identifier является простым идентификатором SQL. Простой идентификатор SQL в стандарте SQL называется регулярным (или обычным) идентификатором. Регулярный идентификатор представляет имя объекта базы данных, например таблицы, столбца или представления.

Правила для регулярного идентификатора:

  • Первый символ — буква от a ('\u0061') до z ('\u007A') или от A ('\u0041') до Z ('\u005A')
  • Имя содержит только буквенно-цифровые символы ([0-9A-Za-z]) или символ «_»
  • Это не может быть зарезервированное слово SQL

Для регулярного идентификатора у источника данных могут быть дополнительные правила, например:

  • Поддержка дополнительных символов в имени в соответствии с используемым языковым стандартом
  • Поддержка другой максимальной длины идентификатора
Требования к реализации:
Реализация по умолчанию использует следующие критерии для определения допустимого простого идентификатора SQL:
  • Идентификатор не заключен в двойные кавычки
  • Первый символ — буква от a до z или от A до Z
  • Идентификатор содержит только буквенно-цифровые символы ([0-9A-Za-z]) или символ «_»
  • Идентификатор не является зарезервированным словом SQL
  • Длина идентификатора составляет от 1 до 128 символов включительно
Примеры преобразования:
идентификатор Простой идентификатор
Hello true
G'Day false
"Bruce Wayne" false
GoodDay$ false
Hello"World false
"Hello"World" false
"select" false
"from" 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'''
Требования к реализации:
Реализация по умолчанию создает литерал следующим образом: "N'" + val.replace("'", "''") + "'".
Примечание по реализации:
Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных. Реализация enquoteNCharLiteral может принимать набор символов, отличный от набора, принимаемого реализацией enquoteLiteral того же драйвера.
Параметры:
val — строка символов
Возвращает:
результат замены каждого символа одинарной кавычки в аргументе двумя символами одинарной кавычки, к которому затем добавлен префикс «N».
Выбрасывает:
NullPointerException — если val равен null
SQLException — если произошла ошибка доступа к базе данных
Начиная с:
9

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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