Spec-Zone.ru › OpenJDK 21

Описание интерфейса

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

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

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

С момента:
1.1
См. также:
  • Connection.createStatement()
  • ResultSet

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

Модификатор и тип Поле Описание
static final int CLOSE_ALL_RESULTS
Константа, указывающая, что все объекты ResultSet, которые были ранее открыты, должны быть закрыты при вызове getMoreResults.
static final int CLOSE_CURRENT_RESULT
Константа, указывающая, что текущий объект ResultSet должен быть закрыт при вызове getMoreResults.
static final int EXECUTE_FAILED
Константа, указывающая, что произошла ошибка при выполнении пакетного запроса.
static final int KEEP_CURRENT_RESULT
Константа, указывающая, что текущий объект ResultSet не должен быть закрыт при вызове getMoreResults.
static final int NO_GENERATED_KEYS
Константа, указывающая, что сгенерированные ключи недоступны для извлечения.
static final int RETURN_GENERATED_KEYS
Константа, указывающая, что сгенерированные ключи доступны для извлечения.
static final int SUCCESS_NO_INFO
Константа, указывающая, что пакетный запрос был выполнен успешно, но количество затронутых строк недоступно.

Краткое описание методов

Модификатор и тип Метод Описание
void addBatch(String sql)
Добавляет заданную SQL-команду в текущий список команд для этого объекта Statement.
void cancel()
Отменяет этот объект Statement, если база данных и драйвер поддерживают прерывание SQL-запроса.
void clearBatch()
Очищает текущий список SQL-команд объекта Statement.
void clearWarnings()
Очищает все предупреждения, полученные об этом объекте Statement.
void close()
Освобождает базу данных и JDBC-ресурсы объекта Statement немедленно вместо ожидания, пока это не произойдёт автоматически при закрытии.
void closeOnCompletion()
Указывает, что этот объект Statement будет закрыт, когда все зависящие от него наборы результатов будут закрыты.
default String enquoteIdentifier(String identifier, boolean alwaysQuote)
Возвращает SQL-идентификатор.
default String enquoteLiteral(String val)
Возвращает String, заключённый в одинарные кавычки.
default String enquoteNCharLiteral(String val)
Возвращает String, представляющий строковый литерал национального набора символов, заключённый в одинарные кавычки и префикс с заглавной буквой N.
boolean execute(String sql)
Выполняет заданный SQL-запрос, который может возвращать несколько результатов.
boolean execute(String sql, int autoGeneratedKeys)
Выполняет заданный SQL-запрос, который может возвращать несколько результатов, и сигнализирует драйверу, что любые автоматически сгенерированные ключи должны быть доступны для извлечения.
boolean execute(String sql, int[] columnIndexes)
Выполняет заданный SQL-запрос, который может возвращать несколько результатов, и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения.
boolean execute(String sql, String[] columnNames)
Выполняет заданный SQL-запрос, который может возвращать несколько результатов, и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения.
int[] executeBatch()
Отправляет пакет команд в базу данных для выполнения и, если все команды выполнены успешно, возвращает массив значений обновлений.
default long[] executeLargeBatch()
Отправляет пакет команд в базу данных для выполнения и, если все команды выполнены успешно, возвращает массив значений обновлений.
default long executeLargeUpdate(String sql)
Выполняет заданный SQL-запрос, который может быть INSERT, UPDATE, или DELETE запросом или SQL-запросом, который ничего не возвращает, например, 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, которое будет использоваться последующими методами объекта Statement 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.

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

executeUpdate

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

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

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

close

void close() throws SQLException
Освобождает ресурсы базы данных и JDBC объекта Statement немедленно вместо ожидания, пока это произойдет автоматически при закрытии. Обычно рекомендуется освобождать ресурсы сразу же после использования, чтобы избежать блокировки ресурсов базы данных.

Вызов метода close для объекта Statement, который уже закрыт, не имеет эффекта.

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

Specified by:
close в интерфейсе AutoCloseable
Throws:
SQLException - если произошла ошибка доступа к базе данных

getMaxFieldSize

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

setMaxFieldSize

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

getMaxRows

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

setMaxRows

void setMaxRows(int max) throws SQLException
Устанавливает ограничение для максимального количества строк, которое может содержать любой объект ResultSet, сгенерированный этим объектом Statement, на заданное значение. Если ограничение превышено, избыточные строки отбрасываются.
Parameters:
max - новое ограничение максимального количества строк; ноль означает, что ограничение отсутствует
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement или условие max >= 0 не выполняется
См. также:
  • 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, если СУБД и драйвер поддерживают прерывание 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
Отправляет пакет команд в базу данных для выполнения и, если все команды выполняются успешно, возвращает массив счётов обновления. Элементы массива int возвращаемого массива упорядочены так, чтобы соответствовать командам в пакете, которые упорядочены в порядке добавления в пакет. Элементы в массиве, возвращаемом методом executeBatch, могут быть следующими:
  1. Число, большее или равное нулю — указывает, что команда была обработана успешно и является счётом обновления, указывающим количество строк в базе данных, затронутых выполнением команды
  2. Значение SUCCESS_NO_INFO — указывает, что команда была обработана успешно, но количество затронутых строк неизвестно

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

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

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

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

getConnection

Connection getConnection() throws SQLException
Возвращает объект Connection, который произвёл этот объект Statement.
Returns:
соединение, которое произвело этот оператор
Throws:
SQLException - если происходит ошибка доступа к базе данных или этот метод вызывается для закрытого объекта Statement
Since:
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))
 
Parameters:
current - одно из следующих Statement констант, указывающих, что должно произойти с текущими объектами ResultSet, полученными с помощью метода getResultSet: Statement.CLOSE_CURRENT_RESULT, Statement.KEEP_CURRENT_RESULT или Statement.CLOSE_ALL_RESULTS
Returns:
true, если следующий результат является объектом ResultSet; false, если это счёт обновления или больше результатов нет
Throws:
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.
Since:
1.4
See Also:
  • execute(java.lang.String)

getGeneratedKeys

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

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

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

executeUpdate

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

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

Parameters:
sql - SQL-утверждение языка манипулирования данными (DML), например, INSERT, UPDATE или DELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL.
autoGeneratedKeys - флаг, указывающий, должны ли сгенерированные ключи быть доступны для получения; одна из следующих констант: Statement.RETURN_GENERATED_KEYS Statement.NO_GENERATED_KEYS
Returns:
либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объекта Statement, данное SQL-утверждение возвращает объект ResultSet, данная константа не является одной из разрешённых, метод вызван для объекта PreparedStatement или CallableStatement
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS
SQLTimeoutException - когда драйвер определил, что значение таймаута, заданное методом setQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполняемое Statement
Since:
1.4

executeUpdate

int executeUpdate(String sql, int[] columnIndexes) throws SQLException
Выполняет данное SQL-утверждение и сигнализирует драйверу, что сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения. Этот массив содержит индексы столбцов в целевой таблице, содержащие сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является утверждением INSERT или SQL-утверждением, способным возвращать сгенерированные ключи (список таких утверждений зависит от поставщика).

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

Parameters:
sql - SQL-утверждение языка манипулирования данными (DML), например, INSERT, UPDATE или DELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL.
columnIndexes - массив индексов столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки
Returns:
либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объекта Statement, SQL-утверждение возвращает объект ResultSet, второй аргумент, переданный в этот метод, не является массивом int, элементы которого являются допустимыми индексами столбцов, метод вызван для объекта PreparedStatement или CallableStatement
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
SQLTimeoutException - когда драйвер определил, что значение таймаута, заданное методом setQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполняемое Statement
Since:
1.4

executeUpdate

int executeUpdate(String sql, String[] columnNames) throws SQLException
Выполняет данное SQL-утверждение и сигнализирует драйверу, что сгенерированные ключи, указанные в данном массиве, должны быть доступны для получения. Этот массив содержит имена столбцов в целевой таблице, содержащие сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является утверждением INSERT или SQL-утверждением, способным возвращать сгенерированные ключи (список таких утверждений зависит от поставщика).

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

Parameters:
sql - SQL-утверждение языка манипулирования данными (DML), например, INSERT, UPDATE или DELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL.
columnNames - массив имён столбцов, которые должны быть возвращены из вставленной строки
Returns:
либо количество строк для утверждений INSERT, UPDATE или DELETE, либо 0 для SQL-утверждений, которые ничего не возвращают
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объекта Statement, SQL-утверждение возвращает объект ResultSet, второй аргумент, переданный в этот метод, не является массивом String, элементы которого являются допустимыми именами столбцов, метод вызван для объекта PreparedStatement или CallableStatement
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
SQLTimeoutException - когда драйвер определил, что значение таймаута, заданное методом setQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполняемое Statement
Since:
1.4

выполнить

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()

выполнить

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()

выполнить

boolean execute(String sql, String[] columnNames) throws SQLException
Выполняет заданное SQL-утверждение, которое может возвращать несколько результатов, и сигнализирует драйверу, что сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит имена столбцов в целевой таблице, которые содержат сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является INSERT утверждением или SQL-утверждением, способным возвращать сгенерированные ключи (список таких утверждений зависит от поставщика).

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

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

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

Параметры:
sql - любое SQL-утверждение
columnNames - массив имен столбцов в строке вставки, которые должны быть доступны для извлечения вызовом метода getGeneratedKeys
Возвращает:
true, если следующий результат является объектом ResultSet; false, если это счетчик обновлений или больше результатов нет
Исключения:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызывается на закрытом Statement, элементы массива String, переданные в этот метод, не являются допустимыми именами столбцов, метод вызывается на PreparedStatement или CallableStatement
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод
SQLTimeoutException - когда драйвер определил, что значение таймаута, указанное методом setQueryTimeout, было превышено и по крайней мере попытался отменить текущее выполнение Statement
С:
1.4
См. также:
  • getResultSet()
  • getUpdateCount()
  • getMoreResults()
  • getGeneratedKeys()

getResultSetHoldability

int getResultSetHoldability() throws SQLException
Извлекает возможность удержания набора результатов для объектов ResultSet, сгенерированных этим объектом Statement.
Возвращает:
либо ResultSet.HOLD_CURSORS_OVER_COMMIT, либо ResultSet.CLOSE_CURSORS_AT_COMMIT
Исключения:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызывается на закрытом Statement
С:
1.4

isClosed

boolean isClosed() throws SQLException
Извлекает, был ли закрыт этот объект Statement. Объект Statement закрыт, если на нем был вызван метод close, или если он закрыт автоматически.
Возвращает:
true, если этот объект Statement закрыт; false, если он все еще открыт
Исключения:
SQLException - если произошла ошибка доступа к базе данных
С:
1.6

setPoolable

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

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

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

Параметры:
poolable - запрашивает, чтобы утверждение было помещено в пул, если true, и чтобы утверждение не было помещено в пул, если false
Исключения:
SQLException - если этот метод вызывается на закрытом Statement
С:
1.6

isPoolable

boolean isPoolable() throws SQLException
Возвращает значение, указывающее, находится ли Statement в пуле или нет.
Возвращает:
true, если Statement находится в пуле; false в противном случае
Исключения:
SQLException - если этот метод вызывается на закрытом Statement
С:
1.6
См. также:
  • setPoolable(boolean)

closeOnCompletion

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

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

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()

executeLargeUpdate

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

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

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

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

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

executeLargeUpdate

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

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

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

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

Parameters:
sql - SQL-утверждение языка манипулирования данными (DML), например, INSERT, UPDATE или DELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL.
autoGeneratedKeys - флаг, указывающий, должны ли быть доступны для извлечения автоматически сгенерированные ключи; одна из следующих констант: Statement.RETURN_GENERATED_KEYS Statement.NO_GENERATED_KEYS
Returns:
либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызывается на закрытом Statement, заданное SQL-утверждение возвращает объект ResultSet, заданная константа не является одной из разрешённых, метод вызывается на PreparedStatement или CallableStatement
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS
SQLTimeoutException - когда драйвер определил, что значение таймаута, указанное методом setQueryTimeout, было превышено и, по крайней мере, попытался отменить текущую Statement
Since:
1.8

executeLargeUpdate

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

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

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

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

Parameters:
sql - SQL-утверждение языка манипулирования данными (DML), например, INSERT, UPDATE или DELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL.
columnIndexes - массив индексов столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки
Returns:
либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызывается на закрытом Statement, SQL-утверждение возвращает объект ResultSet, второй аргумент, переданный в этот метод, не является массивом int, элементы которого являются допустимыми индексами столбцов, метод вызывается на PreparedStatement или CallableStatement
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод
SQLTimeoutException - когда драйвер определил, что значение таймаута, указанное методом setQueryTimeout, было превышено и, по крайней мере, попытался отменить текущую Statement
Since:
1.8

executeLargeUpdate

default long executeLargeUpdate(String sql, String[] columnNames) throws SQLException
Выполняет заданное SQL-утверждение и сигнализирует драйверу о том, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит имена столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-утверждение не является INSERT утверждением или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика).

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

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

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

Parameters:
sql - SQL-утверждение языка манипулирования данными (DML), например, INSERT, UPDATE или DELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL.
columnNames - массив имён столбцов, которые должны быть возвращены из вставленной строки
Returns:
либо количество строк для INSERT, UPDATE или DELETE утверждений, либо 0 для SQL-утверждений, которые ничего не возвращают
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызывается на закрытом Statement, SQL-утверждение возвращает объект ResultSet, второй аргумент, переданный в этот метод, не является массивом String, элементы которого являются допустимыми именами столбцов, метод вызывается на PreparedStatement или CallableStatement
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод
SQLTimeoutException - когда драйвер определил, что значение таймаута, указанное методом setQueryTimeout, было превышено и, по крайней мере, попытался отменить текущую Statement
Since:
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'
Implementation Note:
Реализации JDBC-драйверов могут потребоваться предоставить собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных.
Parameters:
val - строка символов
Returns:
Строка, заключённая в одинарные кавычки, в которой каждая одиночная кавычка преобразована в две одиночные кавычки
Throws:
NullPointerException - если val является null
SQLException - если произошла ошибка доступа к базе данных
Since:
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 содержит недопустимый символ или двойную кавычку и не является простым идентификатором 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
Возвращает строку String, представляющую строковый литерал National Character Set, заключённый в одинарные кавычки и с префиксом заглавной буквы 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, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.sql/java/sql/Statement.html

Spec-Zone.ru

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