Spec-Zone.ru › OpenJDK 17

Интерфейс объявления

Все суперинтерфейсы:
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.
С тех пор:
1.4
См. также:
  • Значения константных полей

KEEP_CURRENT_RESULT

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

CLOSE_ALL_RESULTS

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

SUCCESS_NO_INFO

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

EXECUTE_FAILED

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

RETURN_GENERATED_KEYS

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

NO_GENERATED_KEYS

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

Подробное описание методов

executeQuery

ResultSet executeQuery(String sql) throws SQLException
Выполняет заданное SQL-утверждение, которое возвращает один ResultSet объект.

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

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

executeUpdate

int executeUpdate(String sql) throws SQLException
Выполняет заданное SQL-утверждение, которое может быть INSERT, UPDATE, или DELETE утверждением или SQL-утверждением, не возвращающим ничего, таким как 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)

setMaxRows

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

setEscapeProcessing

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

Свойство Connection и DataSource может быть использовано для изменения поведения по умолчанию по обработке экранирования. Значение 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 . Это имя может быть использовано в 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. Каждый набор результатов имеет свои методы для получения и установки собственного направления извлечения.

Параметры:
direction - начальное направление обработки строк
Исключения:
SQLException - если возникает ошибка доступа к базе данных, этот метод вызывается для закрытого объекта Statement или заданное направление не является одним из ResultSet.FETCH_FORWARD, ResultSet.FETCH_REVERSE, или ResultSet.FETCH_UNKNOWN
С тех пор:
1.2
См. также:
  • getFetchDirection()

getFetchDirection

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

setFetchSize

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

getFetchSize

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

getResultSetConcurrency

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

getResultSetType

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

addBatch

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

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

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

clearBatch

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

executeBatch

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

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

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

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

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

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


     // stmt is a Statement object
     ((stmt.getMoreResults(current) == false) && (stmt.getUpdateCount() == -1))
 
Параметры:
current - одно из следующих Statement констант, указывающих, что должно произойти с текущими объектами ResultSet , полученными с помощью метода getResultSet: Statement.CLOSE_CURRENT_RESULT, Statement.KEEP_CURRENT_RESULT, или Statement.CLOSE_ALL_RESULTS
Возвращает:
true , если следующий результат является объектом ResultSet; false , если это счетчик обновлений или результатов больше нет
Исключения:
SQLException - если возникает ошибка доступа к базе данных, этот метод вызывается для закрытого объекта Statement или переданный аргумент не является одним из следующих: Statement.CLOSE_CURRENT_RESULT, Statement.KEEP_CURRENT_RESULT или Statement.CLOSE_ALL_RESULTS
SQLFeatureNotSupportedException - если DatabaseMetaData.supportsMultipleOpenResults возвращает false и либо Statement.KEEP_CURRENT_RESULT , либо Statement.CLOSE_ALL_RESULTS переданы в качестве аргумента.
С тех пор:
1.4
См. также:
  • execute(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-утверждением, способным возвращать сгенерированные ключи (список таких утверждений зависит от поставщика).

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

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

executeUpdate

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

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

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

executeUpdate

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

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

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

execute

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

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

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

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

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

execute

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

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

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

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

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

execute

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

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

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

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

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

getResultSetHoldability

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

isClosed

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

setPoolable

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

Значение 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 влияет как на последующее выполнение запросов, так и на запросы, которые в настоящее время имеют открытые зависимые наборы результатов.

Исключения:
SQLException - если этот метод вызывается для закрытого Statement
С тех пор:
1.7

isCloseOnCompletion

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

getLargeUpdateCount

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

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

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

Возвращает:
текущее значение количества обновлений; -1, если текущий результат является объектом ResultSet или больше нет результатов
Исключения:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызывается для закрытого Statement
С тех пор:
1.8
См. также:
  • execute(java.lang.String)

setLargeMaxRows

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

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

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

Параметры:
max - новый предел максимального количества строк; ноль означает отсутствие предела
Исключения:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызывается для закрытого Statement или условие max >= 0 не выполняется
С тех пор:
1.8
См. также:
  • getMaxRows()

getLargeMaxRows

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

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

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

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

executeLargeBatch

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

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

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

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

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

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

Параметры:
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

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 содержит какие-либо недопустимые символы для разделителя идентификатора или длина идентификатора не соответствует требованиям источника данных.

Implementation Requirements:
Реализация по умолчанию использует следующие критерии для определения допустимого простого 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
Implementation Note:
Реализации JDBC-драйверов могут потребоваться предоставить собственную реализацию этого метода для соответствия требованиям базового источника данных.
Parameters:
identifier - SQL-идентификатор
alwaysQuote - указывает, должен ли простой SQL-идентификатор возвращаться как идентификатор в кавычках
Returns:
Простой SQL-идентификатор или разделитель идентификатора
Throws:
SQLException - если идентификатор не является допустимым идентификатором
SQLFeatureNotSupportedException - если источник данных не поддерживает разделители идентификаторов
NullPointerException - если идентификатор является null
Since:
9

isSimpleIdentifier

default boolean isSimpleIdentifier(String identifier) throws SQLException
Определяет, является ли identifier простым SQL-идентификатором.
Implementation Requirements:
Реализация по умолчанию использует следующие критерии для определения допустимого простого SQL-идентификатора:
  • Строка не заключена в двойные кавычки
  • Первый символ является буквенным символом от a до z или от A до Z
  • Строка содержит только буквенно-цифровые символы или символ "_"
  • Длина строки находится в диапазоне от 1 до 128 символов включительно
Примеры преобразования:
идентификатор Простой идентификатор
Hello true
G'Day false
"Bruce Wayne" false
GoodDay$ false
Hello"World false
"Hello"World" false
Implementation Note:
Реализации JDBC-драйверов могут потребоваться предоставить собственную реализацию этого метода для соответствия требованиям базового источника данных.
Parameters:
identifier - SQL-идентификатор
Returns:
true, если простой SQL-идентификатор, false в противном случае
Throws:
NullPointerException - если идентификатор является null
SQLException - если произошла ошибка доступа к базе данных
Since:
9

enquoteNCharLiteral

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

© 1993, 2021, 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/17/docs/api/java.sql/java/sql/Statement.html

Spec-Zone.ru

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