Интерфейс оператора

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

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

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

С:
1.1
См. также:
Connection.createStatement(), ResultSet

Свойства

Модификатор и тип Свойство Описание
static int CLOSE_ALL_RESULTS

Константа, указывающая, что все объекты ResultSet , которые ранее были открыты, должны быть закрыты при вызове getMoreResults.

static int CLOSE_CURRENT_RESULT

Константа, указывающая, что текущий объект ResultSet должен быть закрыт при вызове getMoreResults.

static int EXECUTE_FAILED

Константа, указывающая, что произошла ошибка при выполнении пакетного запроса.

static int KEEP_CURRENT_RESULT

Константа, указывающая, что текущий объект ResultSet не должен быть закрыт при вызове getMoreResults.

static int NO_GENERATED_KEYS

Константа, указывающая, что сгенерированные ключи недоступны для извлечения.

static int RETURN_GENERATED_KEYS

Константа, указывающая, что сгенерированные ключи доступны для извлечения.

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

void setEscapeProcessing​(boolean enable)

Включает или выключает обработку экранирования.

void setFetchDirection​(int direction)

Даёт драйверу подсказку о направлении обработки строк в объектах ResultSet, созданных с использованием этого объекта Statement.

void setFetchSize​(int rows)

Даёт JDBC-драйверу подсказку о количестве строк, которые должны быть извлечены из базы данных при необходимости дополнительных строк для объектов ResultSet, сгенерированных этим объектом Statement.

default void setLargeMaxRows​(long max)

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

void setMaxFieldSize​(int max)

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

void setMaxRows​(int max)

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

void setPoolable​(boolean poolable)

Запрашивает, должен ли объект Statement быть помещен в пул или нет.

void setQueryTimeout​(int seconds)

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

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

isWrapperFor, unwrap

Поля

CLOSE_CURRENT_RESULT

static final int CLOSE_CURRENT_RESULT

Константа, указывающая, что текущий объект ResultSet должен быть закрыт при вызове getMoreResults.

Since:
1.4
См. также:
Значения константных полей

KEEP_CURRENT_RESULT

static final int KEEP_CURRENT_RESULT

Константа, указывающая, что текущий объект ResultSet не должен быть закрыт при вызове getMoreResults.

Since:
1.4
См. также:
Значения константных полей

CLOSE_ALL_RESULTS

static final int CLOSE_ALL_RESULTS

Константа, указывающая, что все объекты ResultSet , которые ранее были открыты, должны быть закрыты при вызове getMoreResults.

Since:
1.4
См. также:
Значения константных полей

SUCCESS_NO_INFO

static final int SUCCESS_NO_INFO

Константа, указывающая, что оператор пакетной обработки был выполнен успешно, но количество затронутых строк недоступно.

Since:
1.4
См. также:
Значения константных полей

EXECUTE_FAILED

static final int EXECUTE_FAILED

Константа, указывающая, что при выполнении оператора пакетной обработки произошла ошибка.

Since:
1.4
См. также:
Значения константных полей

RETURN_GENERATED_KEYS

static final int RETURN_GENERATED_KEYS

Константа, указывающая, что сгенерированные ключи должны быть доступны для извлечения.

Since:
1.4
См. также:
Значения константных полей

NO_GENERATED_KEYS

static final int NO_GENERATED_KEYS

Константа, указывающая, что сгенерированные ключи не должны быть доступны для извлечения.

Since:
1.4
См. также:
Значения константных полей

Методы

executeQuery

ResultSet executeQuery(String sql)
                throws SQLException

Выполняет заданный оператор SQL, который возвращает один объект ResultSet.

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

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

executeUpdate

int executeUpdate(String sql)
           throws SQLException

Выполняет заданный оператор SQL, который может быть оператором INSERT, UPDATE или DELETE или оператором SQL, который ничего не возвращает, например, оператор SQL DDL.

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

Параметры:
sql - оператор SQL Data Manipulation Language (DML), например, INSERT, UPDATE или DELETE; или оператор SQL, который ничего не возвращает, например, оператор DDL.
Возвращает:
либо (1) количество строк для операторов SQL Data Manipulation Language (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 escapeProcessing может использоваться для изменения поведения обработки экранирования по умолчанию. Значение true (по умолчанию) включает обработку экранирования для всех объектов Statement. Значение false отключает обработку экранирования для всех объектов Statement. Метод setEscapeProcessing может использоваться для указания поведения обработки экранирования для отдельного объекта Statement.

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

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

getQueryTimeout

int getQueryTimeout()
             throws SQLException

Извлекает количество секунд, в течение которых драйвер будет ожидать выполнения объекта Statement. Если лимит превышен, выбрасывается SQLException.

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

setQueryTimeout

void setQueryTimeout(int seconds)
              throws SQLException

Устанавливает количество секунд, в течение которых драйвер будет ожидать выполнения объекта Statement, на заданное количество секунд. По умолчанию нет ограничений на время, разрешенное для завершения выполняемого оператора. Если лимит превышен, выбрасывается SQLTimeoutException. JDBC-драйвер должен применять это ограничение к методам execute, executeQuery и executeUpdate.

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

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

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

cancel

void cancel()
     throws SQLException

Отменяет этот объект Statement, если СУБД и драйвер поддерживают прерывание оператора SQL. Этот метод может использоваться одним потоком для отмены оператора, который выполняется другим потоком.

Исключения:
SQLException - если возникает ошибка доступа к базе данных или этот метод вызывается для закрытого объекта Statement
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод

getWarnings

SQLWarning getWarnings()
                throws SQLException

Извлекает первое предупреждение, о котором сообщается при вызовах этого объекта Statement. Последующие предупреждения объекта Statement будут присоединены к этому объекту SQLWarning.

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

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

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

clearWarnings

void clearWarnings()
            throws SQLException

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

Выбрасывает:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement

setCursorName

void setCursorName(String name)
            throws SQLException

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

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

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

execute

boolean execute(String sql)
         throws SQLException

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

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

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

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

getResultSet

ResultSet getResultSet()
                throws SQLException

Возвращает текущий результат в виде ResultSet объекта. Этот метод должен быть вызван только один раз на результат.

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

getUpdateCount

int getUpdateCount()
            throws SQLException

Возвращает текущий результат как счетчик обновлений; если результат — ResultSet объект или результатов больше нет, возвращается -1. Этот метод должен быть вызван только один раз на результат.

Возвращает:
текущий результат как счетчик обновлений; -1, если текущий результат — ResultSet объект или результатов больше нет
Выбрасывает:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
См. также:
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))
Возвращает:
true если следующий результат — ResultSet объект; false если это счетчик обновлений или результатов больше нет
Выбрасывает:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого Statement
См. также:
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 Data Manipulation Language (DML), такой как INSERT, UPDATE или DELETE; или SQL-запрос, который ничего не возвращает, например, оператор DDL.
Возвращает:
либо (1) количество строк для операторов SQL Data Manipulation Language (DML), либо (2) 0 для SQL-запросов, которые ничего не возвращают
Выбрасывает:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого Statement, заданный SQL-запрос генерирует объект ResultSet, метод вызван для PreparedStatement или CallableStatement
SQLTimeoutException - когда драйвер определил, что значение таймаута, заданное методом setQueryTimeout, было превышено и по крайней мере попытался отменить текущее выполняемое Statement
С:
1.8

executeLargeUpdate

default long executeLargeUpdate(String sql,
                                int autoGeneratedKeys)
                         throws SQLException

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

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

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

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

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

executeLargeUpdate

default long executeLargeUpdate(String sql,
                                int[] columnIndexes)
                         throws SQLException

Выполняет заданный оператор SQL и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит индексы столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если оператор SQL не является оператором INSERT или оператором SQL, способным возвращать автоматически сгенерированные ключи (список таких операторов зависит от поставщика).

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

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

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

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

executeLargeUpdate

default long executeLargeUpdate(String sql,
                                String[] columnNames)
                         throws SQLException

Выполняет заданный оператор SQL и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. Этот массив содержит имена столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если оператор SQL не является оператором INSERT или оператором SQL, способным возвращать автоматически сгенерированные ключи (список таких операторов зависит от поставщика).

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

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

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

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

enquoteLiteral

default String enquoteLiteral(String val)
                       throws SQLException

Возвращает String в одинарных кавычках. Любое вхождение одинарной кавычки в строке будет заменено на две одинарные кавычки.

Значение Результат
Привет 'Привет'
Доброе утро 'Доброе'' утро'
'Доброе'' утро' '''Доброе'''' утро'''
Я'' 'Я''''''

Примечание по реализации:
Реализации драйверов JDBC могут потребоваться предоставить свою собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных.
Параметры:
val - строка символов
Возвращает:
Строка в одинарных кавычках, в которой каждая одинарная кавычка заменена на две одинарные кавычки
Выбрасывает:
NullPointerException - если val null
SQLException - если произошла ошибка доступа к базе данных
С:
9

enquoteIdentifier

default String enquoteIdentifier(String identifier,
                                 boolean alwaysQuote)
                          throws SQLException

Возвращает идентификатор SQL. Если identifier — это простой идентификатор SQL:

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

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

Требования к реализации:
Реализация по умолчанию использует следующие критерии для определения допустимого простого идентификатора SQL:
  • Строка не заключена в двойные кавычки
  • Первый символ — это буквенный символ от a до z или от A до Z
  • Имя содержит только буквенно-цифровые символы или символ "_"
Реализация по умолчанию выбросит SQLException если:
  • identifier содержит null символ или двойные кавычки и не является простым идентификатором SQL.
  • Длина identifier меньше 1 или больше 128 символов
идентификатор всегдаЗаключатьВКавычки Результат
Привет false Привет
Привет true "Привет"
Доброе утро false "Доброе утро"
"Брюс Уэйн" false "Брюс Уэйн"
"Брюс Уэйн" true "Брюс Уэйн"
ДоброеУтро$ false "ДоброеУтро$"
Привет"Мир false SQLException
"Привет"Мир" 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 символов включительно
Идентификатор Простой идентификатор
Привет true
G'Day false
"Брюс Уэйн" false
GoodDay$ false
Привет"Мир false
"Привет"Мир" false
Примечание реализации:
Реализация драйвера JDBC может потребовать предоставления собственной реализации этого метода для удовлетворения требований базового источника данных.
Параметры:
identifier - идентификатор SQL
Возвращает:
true, если это простой идентификатор SQL, иначе false
Выбрасывает:
NullPointerException - если идентификатор null
SQLException - если произошла ошибка доступа к базе данных
С:
9

enquoteNCharLiteral

default String enquoteNCharLiteral(String val)
                            throws SQLException

Возвращает строку, представляющую буквенно-цифровой литерал Национального набора символов, заключенный в одинарные кавычки и префикс с заглавной буквой N. Любое вхождение одиночной кавычки в строке будет заменено на две одинарные кавычки.

Значение Результат
Привет N'Привет'
G'Day N'G''Day'
'G''Day' N'''G''''Day'''
I'''M N'I''''''M'
N'Привет' N'N''Привет'''

Примечание реализации:
Реализация драйвера JDBC может потребовать предоставления собственной реализации этого метода для удовлетворения требований базового источника данных. Реализация enquoteNCharLiteral может принимать другой набор символов, чем реализация enquoteLiteral того же драйвера.
Параметры:
val - строка символов
Возвращает:
результат замены каждого символа одиночной кавычки в аргументе на два символа одиночной кавычки, а затем префикса 'N'.
Выбрасывает:
NullPointerException - если val null
SQLException - если произошла ошибка доступа к базе данных
С:
9

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

Spec-Zone .ru
спецификации, руководства, описания, API