Spec-Zone.ru › OpenJDK 24

Интерфейс заявления

Все суперинтерфейсы:
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, если DBMS и драйвер поддерживают отмену 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-запросом, который ничего не возвращает, например, SQL-запрос DDL.
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-запросом, который ничего не возвращает, например, SQL-запрос DDL.
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.
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, в заданное количество секунд.

Методы, объявленные в интерфейсе java.sql.Wrapper

isWrapperFor, unwrap

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

CLOSE_CURRENT_RESULT

static final int CLOSE_CURRENT_RESULT
Константа, указывающая, что текущий объект ResultSet должен быть закрыт при вызове getMoreResults.
Since:
1.4
См. также:
  • Значения константных полей

KEEP_CURRENT_RESULT

static final int KEEP_CURRENT_RESULT
Константа, указывающая, что текущий объект ResultSet не должен быть закрыт при вызове getMoreResults.
Since:
1.4
См. также:
  • Значения константных полей

CLOSE_ALL_RESULTS

static final int CLOSE_ALL_RESULTS
Константа, указывающая, что все объекты ResultSet, которые ранее были открыты, должны быть закрыты при вызове getMoreResults.
Since:
1.4
См. также:
  • Значения константных полей

SUCCESS_NO_INFO

static final int SUCCESS_NO_INFO
Константа, указывающая, что пакетный запрос был успешно выполнен, но количество затронутых строк недоступно.
Since:
1.4
См. также:
  • Значения константных полей

EXECUTE_FAILED

static final int EXECUTE_FAILED
Константа, указывающая, что при выполнении пакетного запроса произошла ошибка.
Since:
1.4
См. также:
  • Значения константных полей

RETURN_GENERATED_KEYS

static final int RETURN_GENERATED_KEYS
Константа, указывающая, что сгенерированные ключи должны быть доступны для извлечения.
Since:
1.4
См. также:
  • Значения константных полей

NO_GENERATED_KEYS

static final int NO_GENERATED_KEYS
Константа, указывающая, что сгенерированные ключи не должны быть доступны для извлечения.
Since:
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-предложение, не возвращающее значения, например, SQL-предложение DDL.

Примечание: Этот метод не может быть вызван для 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)
END_OF_DOCUMENT_MARKER

setMaxRows

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

setEscapeProcessing

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

Свойство Connection и DataSource escapeProcessing могут быть использованы для изменения поведения обработки экранирования по умолчанию. Значение true (по умолчанию) включает обработку экранирования для всех объектов Statement. Значение false отключает обработку экранирования для всех объектов Statement. Метод setEscapeProcessing может быть использован для указания поведения обработки экранирования для отдельного объекта Statement.

Примечание: поскольку подготовленные запросы обычно парсятся до вызова этого метода, отключение обработки экранирования для объектов PreparedStatements не повлияет на результат.

Parameters:
enable - значение true для включения обработки экранирования; false для ее отключения
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объекте Statement

getQueryTimeout

int getQueryTimeout() throws SQLException
Возвращает количество секунд, которое драйвер будет ожидать выполнения объекта Statement. Если лимит превышен, выбрасывается исключение SQLException.
Returns:
текущее ограничение таймаута запроса в секундах; ноль означает отсутствие ограничения
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объекте Statement
See Also:
  • setQueryTimeout(int)

setQueryTimeout

void setQueryTimeout(int seconds) throws SQLException
Устанавливает количество секунд, которое драйвер будет ожидать выполнения объекта Statement, до заданного числа секунд. По умолчанию нет ограничений на время выполнения запроса. Если лимит превышен, выбрасывается исключение SQLTimeoutException. Драйвер JDBC должен применить это ограничение к методам execute, executeQuery и executeUpdate.

Примечание: Реализации драйверов JDBC также могут применять это ограничение к методам ResultSet (обратитесь к документации вашего поставщика драйвера для получения подробностей).

Примечание: В случае пакетной обработки Statement, определяется, применяется ли таймаут к отдельным SQL-командам, добавленным через метод addBatch, или ко всему пакету SQL-команд, вызываемому методом executeBatch (обратитесь к документации вашего поставщика драйвера для получения подробностей).

Parameters:
seconds - новое ограничение таймаута запроса в секундах; ноль означает отсутствие ограничения
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван на закрытом объекте Statement или условие seconds >= 0 не выполняется
See Also:
  • getQueryTimeout()

cancel

void cancel() throws SQLException
Отменяет выполнение объекта Statement, если DBMS и драйвер поддерживают прерывание SQL-запроса. Этот метод может использоваться одной нитью для отмены запроса, выполняемого другой нитью.
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объекте Statement
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод

getWarnings

SQLWarning getWarnings() throws SQLException
Возвращает первое предупреждение, сообщённое вызовами на этом объекте Statement. Последующие предупреждения объекта Statement будут присоединены к этому объекту SQLWarning.

Цепочка предупреждений автоматически очищается каждый раз, когда запрос выполняется (перевыполняется). Этот метод не может быть вызван на закрытом объекте Statement; при этом будет выброшено исключение SQLException.

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

Returns:
первый объект SQLWarning или null, если предупреждений нет
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объекте Statement

clearWarnings

void clearWarnings() throws SQLException
Очищает все предупреждения, сообщенные об этом объекте Statement. После вызова этого метода метод getWarnings вернет null до тех пор, пока новое предупреждение не будет сообщено для этого объекта Statement.
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объекте Statement

setCursorName

void setCursorName(String name) throws SQLException
Устанавливает имя SQL-курсора в заданное String, которое будет использоваться последующими методами объекта Statement execute. Это имя затем может быть использовано в SQL-запросах на изменение или удаление строк для идентификации текущей строки в объекте ResultSet, созданном этим запросом. Если база данных не поддерживает позиционированные изменения, этот метод является пустой операцией. Для того чтобы убедиться, что курсор имеет подходящий уровень изоляции для поддержки обновлений, запрос курсора должен иметь форму SELECT FOR UPDATE. Если FOR UPDATE отсутствует, позиционированные обновления могут завершиться неудачей.

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

Parameters:
name - новое имя курсора, которое должно быть уникальным в рамках соединения
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объекте Statement
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод

execute

boolean execute(String sql) throws SQLException
Выполняет заданный SQL-запрос, который может возвращать несколько результатов. В некоторых (редких) ситуациях один SQL-запрос может возвращать несколько наборов результатов и/или счётчики обновлений. Обычно это можно игнорировать, если вы (1) выполняете хранимую процедуру, которая, как известно, может возвращать несколько результатов, или (2) динамически выполняете неизвестную строку SQL.

Метод execute выполняет SQL-запрос и указывает форму первого результата. Затем вы должны использовать методы getResultSet или getUpdateCount для получения результата и getMoreResults для перехода к последующим результатам.

Примечание: Этот метод не может быть вызван на объектах PreparedStatement или CallableStatement.

Parameters:
sql - любой SQL-запрос
Returns:
true, если первый результат является объектом ResultSet; false, если это счётчик обновлений или результатов нет
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван на закрытом объекте Statement, метод вызван на объекте PreparedStatement или CallableStatement
SQLTimeoutException - когда драйвер определил, что значение таймаута, заданное методом setQueryTimeout, было превышено, и по крайней мере предпринял попытку отмены выполняющегося Statement
See Also:
  • getResultSet()
  • getUpdateCount()
  • getMoreResults()

getResultSet

ResultSet getResultSet() throws SQLException
Возвращает текущий результат в виде объекта ResultSet. Этот метод должен быть вызван только один раз на каждый результат.
Returns:
текущий результат в виде объекта ResultSet или null, если результат является счётчиком обновлений или больше результатов нет
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объекте Statement
See Also:
  • execute(java.lang.String)

getUpdateCount

int getUpdateCount() throws SQLException
Возвращает текущий результат в виде счётчика обновлений; если результат является объектом ResultSet или больше результатов нет, возвращается -1. Данный метод следует вызывать только один раз на результат.
Returns:
текущий результат в виде счётчика обновлений; -1, если текущий результат является объектом ResultSet или больше результатов нет
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
See Also:
  • execute(java.lang.String)

getMoreResults

boolean getMoreResults() throws SQLException
Переходит к следующему результату объекта Statement, возвращает true, если это объект ResultSet, и неявно закрывает любые текущие объекты ResultSet, полученные с помощью метода getResultSet.

Больше результатов нет, когда выполняется следующее условие:


     // stmt is a Statement object
     ((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
 
Returns:
true, если следующий результат — объект ResultSet; false, если это счётчик обновлений или больше результатов нет
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
See Also:
  • execute(java.lang.String)

setFetchDirection

void setFetchDirection(int direction) throws SQLException
Подсказывает драйверу направление обработки строк в объектах ResultSet, созданных с использованием этого объекта Statement. Значение по умолчанию — ResultSet.FETCH_FORWARD.

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

Parameters:
direction — начальное направление обработки строк
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement или указанное направление не является одним из ResultSet.FETCH_FORWARD, ResultSet.FETCH_REVERSE или ResultSet.FETCH_UNKNOWN
Since:
1.2
See Also:
  • getFetchDirection()

getFetchDirection

int getFetchDirection() throws SQLException
Возвращает направление выборки строк из таблиц базы данных, которое является значением по умолчанию для наборов результатов, сгенерированных этим объектом Statement. Если этот объект Statement не установил направление выборки, вызвав метод setFetchDirection, возвращаемое значение зависит от реализации.
Returns:
значение по умолчанию для направления выборки наборов результатов, сгенерированных этим объектом Statement
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
Since:
1.2
See Also:
  • setFetchDirection(int)

setFetchSize

void setFetchSize(int rows) throws SQLException
Даёт JDBC-драйверу подсказку о количестве строк, которые следует извлечь из базы данных, когда для объектов ResultSet, сгенерированных этим объектом Statement, нужны дополнительные строки. Если заданное значение равно нулю, подсказка игнорируется. Значение по умолчанию — ноль.
Parameters:
rows - количество строк для выборки
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement или условие rows >= 0 не выполняется.
Since:
1.2
See Also:
  • getFetchSize()

getFetchSize

int getFetchSize() throws SQLException
Возвращает количество строк набора результатов, которое является значением по умолчанию для размера выборки для объектов ResultSet, сгенерированных из этого объекта Statement. Если этот объект Statement не установил размер выборки, вызвав метод setFetchSize, возвращаемое значение зависит от реализации.
Returns:
значение по умолчанию для размера выборки наборов результатов, сгенерированных этим объектом Statement
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
Since:
1.2
See Also:
  • setFetchSize(int)

getResultSetConcurrency

int getResultSetConcurrency() throws SQLException
Возвращает конкуретность набора результатов для объектов ResultSet, сгенерированных этим объектом Statement.
Returns:
либо ResultSet.CONCUR_READ_ONLY, либо ResultSet.CONCUR_UPDATABLE
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
Since:
1.2

getResultSetType

int getResultSetType() throws SQLException
Возвращает тип набора результатов для объектов ResultSet, сгенерированных этим объектом Statement.
Returns:
одно из значений ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE или ResultSet.TYPE_SCROLL_SENSITIVE
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
Since:
1.2

addBatch

void addBatch(String sql) throws SQLException
Добавляет заданную SQL-команду в текущий список команд для этого объекта Statement. Команды в этом списке могут быть выполнены как пакет с помощью метода executeBatch.

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

Parameters:
sql — обычно это SQL-команда или оператор INSERT или UPDATE
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement, драйвер не поддерживает пакетные обновления, метод вызван для PreparedStatement или CallableStatement
Since:
1.2
See Also:
  • executeBatch()
  • DatabaseMetaData.supportsBatchUpdates()

clearBatch

void clearBatch() throws SQLException
Очищает текущий список SQL-команд этого объекта Statement.
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement или драйвер не поддерживает пакетные обновления
Since:
1.2
See Also:
  • addBatch(java.lang.String)
  • DatabaseMetaData.supportsBatchUpdates()

executeBatch

int[] executeBatch() throws SQLException
Отправляет пакет команд в базу данных для выполнения и, если все команды выполнились успешно, возвращает массив счётчиков обновлений. Элементы массива, возвращаемого этим методом, упорядочены так, чтобы соответствовать командам в пакете, которые, в свою очередь, упорядочены в соответствии с порядком их добавления в пакет. Элементы массива, возвращаемого этим методом, могут быть следующими:
  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(java.lang.String)
  • DatabaseMetaData.supportsBatchUpdates()

getConnection

Connection getConnection() throws SQLException
Возвращает объект Connection, который произвёл этот объект Statement.
Возвращает:
соединение, которое произвело этот оператор
Исключения:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызывается на закрытом объекте Statement.
С:
1.2

getMoreResults

boolean getMoreResults(int current) throws SQLException
Переходит к следующему результату этого объекта Statement, обрабатывает любые текущие объекты ResultSet в соответствии с указаниями, заданными заданным флагом, и возвращает true, если следующим результатом является объект ResultSet.
Параметры:
current — одно из следующих Statement констант, указывающих, что должно произойти с текущими объектами ResultSet, полученными с помощью метода getResultSet: Statement.CLOSE_CURRENT_RESULT, Statement.KEEP_CURRENT_RESULT или Statement.CLOSE_ALL_RESULTS.
Возвращает:
true, если следующим результатом является объект ResultSet; false, если это счётчик обновлений или больше результатов нет.
Исключения:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызывается на закрытом объекте Statement, или переданный аргумент не является одним из следующих: Statement.CLOSE_CURRENT_RESULT, Statement.KEEP_CURRENT_RESULT или Statement.CLOSE_ALL_RESULTS.
SQLFeatureNotSupportedException — если DatabaseMetaData.supportsMultipleOpenResults возвращает false, и либо Statement.KEEP_CURRENT_RESULT, либо Statement.CLOSE_ALL_RESULTS переданы в качестве аргумента.
С:
1.4
См. также:
  • execute(java.lang.String)

getGeneratedKeys

ResultSet getGeneratedKeys() throws SQLException
Возвращает любые автоматически сгенерированные ключи, созданные в результате выполнения этого объекта Statement. Если этот объект Statement не сгенерировал ключи, возвращается пустой объект ResultSet.

Примечание: Если столбцы, представляющие автоматически сгенерированные ключи, не были указаны, реализация драйвера JDBC определит столбцы, которые наилучшим образом представляют автоматически сгенерированные ключи.

Возвращает:
объект ResultSet, содержащий автоматически сгенерированные ключ(и), сгенерированные выполнением этого объекта Statement.
Исключения:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызывается на закрытом объекте Statement.
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод.
С:
1.4

executeUpdate

int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
Выполняет заданный SQL-запрос и сигнализирует драйверу с помощью заданного флага о том, должны ли автоматически сгенерированные ключи, созданные этим объектом Statement, быть доступны для извлечения. Драйвер проигнорирует флаг, если SQL-запрос не является оператором INSERT, или SQL-запросом, способным возвращать автоматически сгенерированные ключи (список таких запросов зависит от поставщика).
Параметры:
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-запросом, способным возвращать автоматически сгенерированные ключи (список таких запросов зависит от поставщика).
Параметры:
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 или он закрыт автоматически.
Returns:
true, если этот объект Statement закрыт; false, если он всё ещё открыт
Throws:
SQLException - если произошла ошибка доступа к базе данных
Since:
1.6

setPoolable

void setPoolable(boolean poolable) throws SQLException
Запрашивает, должен ли объект Statement быть помещён в пул или нет. Указанное значение служит подсказкой для реализации пула заявок, указывая, хочет ли приложение, чтобы запрос был помещён в пул. Управляющий пулом запросов сам решает, использовать ли эту подсказку.

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

По умолчанию, объект Statement не помещается в пул при создании, а объекты PreparedStatement и CallableStatement помещаются в пул при создании.

Parameters:
poolable - если true, запрос помещается в пул; если false, запрос не помещается в пул
Throws:
SQLException - если этот метод вызван для закрытого объекта Statement
Since:
1.6

isPoolable

boolean isPoolable() throws SQLException
Возвращает значение, указывающее, помещается ли данный объект Statement в пул.
Returns:
true, если объект Statement помещается в пул; false в противном случае
Throws:
SQLException - если этот метод вызван для закрытого объекта Statement
Since:
1.6
See Also:
  • setPoolable(boolean)

closeOnCompletion

void closeOnCompletion() throws SQLException
Указывает, что этот объект Statement будет закрыт, когда все его зависимые наборы результатов будут закрыты. Если выполнение Statement не генерирует наборы результатов, этот метод не оказывает никакого влияния.

Примечание: Несколько вызовов closeOnCompletion не переключают эффект на этот объект Statement. Однако вызов closeOnCompletion влияет как на последующее выполнение запросов, так и на запросы, которые в данный момент имеют открытые зависимые наборы результатов.

Throws:
SQLException - если этот метод вызван для закрытого объекта Statement
Since:
1.7

isCloseOnCompletion

boolean isCloseOnCompletion() throws SQLException
Возвращает значение, указывающее, будет ли этот объект Statement закрыт, когда все его зависимые наборы результатов будут закрыты.
Returns:
true, если объект Statement будет закрыт, когда все его зависимые наборы результатов будут закрыты; false в противном случае
Throws:
SQLException - если этот метод вызван для закрытого объекта Statement
Since:
1.7

getLargeUpdateCount

default long getLargeUpdateCount() throws SQLException
Возвращает текущее значение счётчика обновлений; если результат — объект ResultSet или результатов больше нет, возвращается -1. Этот метод следует вызывать только один раз на результат.

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

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

Returns:
текущее значение счётчика обновлений; -1, если текущий результат — объект ResultSet или результатов больше нет
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого объекта Statement
Since:
1.8
See Also:
  • execute(java.lang.String)

setLargeMaxRows

default void setLargeMaxRows(long max) throws SQLException
Устанавливает ограничение на максимальное количество строк, которое может содержать любой объект ResultSet, сгенерированный этим объектом Statement, до заданного числа. Если предел превышен, лишние строки отбрасываются.

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

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

Parameters:
max - новое ограничение на максимальное количество строк; ноль означает отсутствие ограничения
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объекта Statement или условие max >= 0 не выполняется
Since:
1.8
See Also:
  • getMaxRows()

getLargeMaxRows

default long getLargeMaxRows() throws SQLException
Возвращает максимальное количество строк, которое может содержать объект ResultSet, созданный этим объектом Statement. Если этот предел превышен, лишние строки отбрасываются.

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

Реализация по умолчанию вернёт 0

Returns:
текущее максимальное количество строк для объекта ResultSet, созданного этим объектом Statement; ноль означает отсутствие ограничения
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого объекта Statement
Since:
1.8
See Also:
  • setMaxRows(int)

executeLargeBatch

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

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

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

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

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

Returns:
массив счётчиков обновлений, содержащий по одному элементу для каждой команды в пакете. Элементы массива упорядочены по порядку добавления команд в пакет.
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объекта Statement или драйвер не поддерживает пакетные запросы. Выбрасывает BatchUpdateException (подкласс SQLException), если одна из команд, отправленных в базу данных, не выполняется должным образом или пытается вернуть набор результатов.
SQLTimeoutException - когда драйвер определил, что время ожидания, указанное методом setQueryTimeout, истекло и по крайней мере попытался отменить текущее выполнение Statement
Since:
1.8
See Also:
  • addBatch(java.lang.String)
  • DatabaseMetaData.supportsBatchUpdates()
END_OF_DOCUMENT_MARKER

executeLargeUpdate

default long executeLargeUpdate(String sql) throws SQLException
Выполняет заданное SQL-оператор, который может быть оператором INSERT, UPDATE, или DELETE, или SQL-оператором, не возвращающим строк, таким как SQL DDL-оператор.

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

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

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

Параметры:
sql - оператор языка обработки данных SQL (DML), такой как INSERT, UPDATE или DELETE; или SQL-оператор, который ничего не возвращает, например, DDL-оператор.
Возвращаемое значение:
либо (1) количество строк для операторов языка обработки данных SQL (DML), либо (2) 0 для операторов SQL, которые ничего не возвращают
Исключения:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement, заданный SQL-оператор возвращает объект ResultSet, метод вызван для PreparedStatement или CallableStatement
SQLTimeoutException - когда драйвер определил, что значение таймаута, указанное методом setQueryTimeout, было превышено, и он, по крайней мере, попытался отменить текущую выполняющуюся Statement
С:
1.8

executeLargeUpdate

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

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

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

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

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

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

Требования к реализации:
По умолчанию реализация использует следующие критерии для определения допустимого простого идентификатора 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 - если идентификатор не является допустимым идентификатором
SQLFeatureNotSupportedException - если источник данных не поддерживает идентификаторы с разделителями
NullPointerException - если идентификатор 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 - если идентификатор null
SQLException - если произошла ошибка доступа к базе данных
С:
9

enquoteNCharLiteral

default String enquoteNCharLiteral(String val) throws SQLException
Возвращает строку, представляющую литерал национального набора символов, заключенный в одинарные кавычки и префикс с большой буквой N. Любое вхождение одиночной кавычки в строке будет заменено на две одинарные кавычки.
Примеры преобразования:
Значение Результат
Hello N'Hello'
G'Day N'G''Day'
'G''Day' N'''G''''Day'''
I'''M N'I''''''M'
N'Hello' N'N''Hello'''
Примечание о реализации:
Реализации драйверов JDBC могут потребоваться предоставить собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных. Реализация enquoteNCharLiteral может принимать другой набор символов, чем реализация enquoteLiteral в тех же драйверах.
Параметры:
val - строка символов
Возвращает:
результат замены каждого символа одинарной кавычки в аргументе на два символа одинарной кавычки, а затем этот весь результат префикс с 'N'.
Выбрасывает:
NullPointerException - если val null
SQLException - если произошла ошибка доступа к базе данных
С:
9

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.sql/java/sql/Statement.html

Spec-Zone.ru

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