Интерфейс Statement
- Все суперинтерфейсы:
AutoCloseable, Wrapper
- Все известные подинтерфейсы:
CallableStatement, PreparedStatement
public interface Statement extends Wrapper, AutoCloseable
Объект, используемый для выполнения статического SQL-оператора и возврата результатов, которые он формирует.
По умолчанию для каждого объекта Statement одновременно может быть открыт только один объект ResultSet. Поэтому, если чтение одного объекта ResultSet чередуется с чтением другого, каждый из них должен быть создан отдельным объектом Statement. Все методы выполнения в интерфейсе Statement неявно закрывают текущий объект ResultSet оператора, если он открыт.
- Начиная с:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
CLOSE_ALL_RESULTS |
Константа, указывающая, что при вызове getMoreResults следует закрыть все объекты ResultSet, которые ранее оставались открытыми. |
static final int |
CLOSE_CURRENT_RESULT |
Константа, указывающая, что при вызове getMoreResults следует закрыть текущий объект ResultSet. |
static final int |
EXECUTE_FAILED |
Константа, указывающая, что при выполнении пакетного оператора произошла ошибка. |
static final int |
KEEP_CURRENT_RESULT |
Константа, указывающая, что при вызове getMoreResults не следует закрывать текущий объект ResultSet. |
static final int |
NO_GENERATED_KEYS |
Константа, указывающая, что сгенерированные ключи не должны быть доступны для получения. |
static final int |
RETURN_GENERATED_KEYS |
Константа, указывающая, что сгенерированные ключи должны быть доступны для получения. |
static final int |
SUCCESS_NO_INFO |
Константа, указывающая, что пакетный оператор выполнен успешно, но количество затронутых им строк неизвестно. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addBatch |
Добавляет указанную SQL-команду в текущий список команд этого объекта Statement. |
void |
cancel() |
Отменяет выполнение этого объекта Statement, если СУБД и драйвер поддерживают прерывание SQL-оператора. |
void |
clearBatch() |
Очищает текущий список SQL-команд этого объекта Statement. |
void |
clearWarnings() |
Очищает все предупреждения, зарегистрированные для этого объекта Statement. |
void |
close() |
Немедленно освобождает ресурсы базы данных и JDBC, связанные с этим объектом Statement, вместо ожидания их автоматического освобождения при закрытии объекта. |
void |
closeOnCompletion() |
Указывает, что этот объект Statement будет закрыт после закрытия всех зависимых от него наборов результатов. |
default String |
enquoteIdentifier |
Возвращает simple SQL identifier или идентификатор с разделителями. |
default String |
enquoteLiteral |
Возвращает String, заключённый в одинарные кавычки. |
default String |
enquoteNCharLiteral |
Возвращает String, представляющий литерал национального набора символов, заключённый в одинарные кавычки и снабжённый префиксом в виде заглавной буквы N. |
boolean |
execute |
Выполняет указанный SQL-оператор, который может возвращать несколько результатов. |
boolean |
execute |
Выполняет указанный SQL-оператор, который может возвращать несколько результатов, и сообщает драйверу, что сгенерированные автоматически ключи должны быть доступны для получения. |
boolean |
execute |
Выполняет указанный SQL-оператор, который может возвращать несколько результатов, и сообщает драйверу, что сгенерированные автоматически ключи, указанные в заданном массиве, должны быть доступны для получения. |
boolean |
execute |
Выполняет указанный SQL-оператор, который может возвращать несколько результатов, и сообщает драйверу, что сгенерированные автоматически ключи, указанные в заданном массиве, должны быть доступны для получения. |
int[] |
executeBatch() |
Отправляет пакет команд на выполнение в базу данных и, если все команды выполнены успешно, возвращает массив счётчиков обновления. |
default long[] |
executeLargeBatch() |
Отправляет пакет команд на выполнение в базу данных и, если все команды выполнены успешно, возвращает массив счётчиков обновления. |
default long |
executeLargeUpdate |
Выполняет указанный SQL-оператор, который может быть оператором INSERT, UPDATE или DELETE, либо SQL-оператором, не возвращающим результатов, например оператором DDL SQL. |
default long |
executeLargeUpdate |
Выполняет указанный SQL-оператор и передаёт драйверу заданный флаг, указывающий, должны ли быть доступны для получения сгенерированные автоматически ключи, созданные этим объектом Statement. |
default long |
executeLargeUpdate |
Выполняет указанный SQL-оператор и сообщает драйверу, что сгенерированные автоматически ключи, указанные в заданном массиве, должны быть доступны для получения. |
default long |
executeLargeUpdate |
Выполняет указанный SQL-оператор и сообщает драйверу, что сгенерированные автоматически ключи, указанные в заданном массиве, должны быть доступны для получения. |
ResultSet |
executeQuery |
Выполняет указанный SQL-оператор, возвращающий один объект ResultSet. |
int |
executeUpdate |
Выполняет указанный SQL-оператор, который может быть оператором INSERT, UPDATE или DELETE, либо SQL-оператором, не возвращающим результатов, например оператором DDL SQL. |
int |
executeUpdate |
Выполняет указанный SQL-оператор и передаёт драйверу заданный флаг, указывающий, должны ли быть доступны для получения сгенерированные автоматически ключи, созданные этим объектом Statement. |
int |
executeUpdate |
Выполняет указанный SQL-оператор и сообщает драйверу, что сгенерированные автоматически ключи, указанные в заданном массиве, должны быть доступны для получения. |
int |
executeUpdate |
Выполняет указанный 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 |
Переходит к следующему результату этого объекта 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 |
Возвращает значение, указывающее, является ли identifier простым идентификатором SQL. |
void |
setCursorName |
Задаёт имя SQL-курсора, равное указанному значению String, которое будет использоваться последующими методами execute объекта Statement. |
void |
setEscapeProcessing |
Включает или отключает обработку экранирования. |
void |
setFetchDirection |
Подсказывает драйверу направление обработки строк в объектах ResultSet, созданных с помощью этого объекта Statement. |
void |
setFetchSize |
Подсказывает драйверу JDBC, сколько строк следует извлекать из базы данных, когда для объектов ResultSet, созданных этим объектом Statement, требуются дополнительные строки. |
default void |
setLargeMaxRows |
Устанавливает для максимального количества строк, которое может содержать любой объект ResultSet, созданный этим объектом Statement, заданный предел. |
void |
setMaxFieldSize |
Устанавливает предел максимального количества байтов, которое может быть возвращено для символьных и двоичных значений столбцов в объекте ResultSet, созданном этим объектом Statement. |
void |
setMaxRows |
Устанавливает для максимального количества строк, которое может содержать любой объект ResultSet, созданный этим объектом Statement, заданный предел. |
void |
setPoolable |
Запрашивает включение или исключение Statement из пула. |
void |
setQueryTimeout |
Задаёт количество секунд, в течение которых драйвер будет ожидать выполнения объекта Statement. |
Методы, объявленные в интерфейсе Wrapper
isWrapperFor, unwrap | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
isWrapperFor |
Возвращает true, если этот объект реализует интерфейс, переданный в качестве аргумента, или прямо либо косвенно является оболочкой объекта, который его реализует. |
<T> T |
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
ResultSet. Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql— инструкция SQL для отправки в базу данных, обычно статическая инструкция SQLSELECT - Возвращает:
- объект
ResultSet, содержащий данные, полученные в результате указанного запроса; никогда неnull - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, указанная инструкция SQL возвращает что-либо, кроме одного объектаResultSet, либо метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException— если драйвер определил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и предпринял как минимум попытку отменить выполняющийся в данный моментStatement
executeUpdate
int executeUpdate(String sql) throws SQLException
INSERT, UPDATE или DELETE либо инструкцией SQL, не возвращающей результатов, например инструкцией DDL SQL. Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql— инструкция языка манипулирования данными SQL (DML), напримерINSERT,UPDATEилиDELETE; либо инструкция SQL, не возвращающая результатов, например инструкция DDL. - Возвращает:
- либо (1) количество строк для инструкций языка манипулирования данными SQL (DML), либо (2) 0 для инструкций SQL, не возвращающих результатов
- Исключения:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, указанная инструкция SQL возвращает объектResultSetлибо метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException— если драйвер определил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и предпринял как минимум попытку отменить выполняющийся в данный моментStatement
close
void close() throws SQLException
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
void setMaxFieldSize(int max) throws SQLException
ResultSet, созданном этим объектом Statement. Это ограничение применяется только к полям BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR и LONGVARCHAR. Если ограничение превышено, лишние данные незаметно отбрасываются. Для максимальной переносимости используйте значения больше 256.- Параметры:
-
max— новый предел размера столбца в байтах; ноль означает отсутствие ограничения - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили не выполнено условиеmax >= 0 - См. также:
getMaxRows
int getMaxRows() throws SQLException
ResultSet, созданный этим объектом Statement. Если это ограничение превышено, лишние строки незаметно отбрасываются.- Возвращает:
- текущее максимальное количество строк для объекта
ResultSet, созданного этим объектомStatement; ноль означает отсутствие ограничения - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
setMaxRows
void setMaxRows(int max) throws SQLException
ResultSet, созданный этим объектом Statement, равным указанному числу. Если ограничение превышено, лишние строки незаметно отбрасываются.- Параметры:
-
max— новый предел количества строк; ноль означает отсутствие ограничения - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили не выполнено условиеmax >= 0 - См. также:
setEscapeProcessing
void setEscapeProcessing(boolean enable) throws SQLException
Для изменения поведения обработки escape-последовательностей по умолчанию можно использовать свойство Connection и DataSource escapeProcessing. Значение true (по умолчанию) включает обработку escape-последовательностей для всех объектов Statement. Значение false отключает обработку escape-последовательностей для всех объектов Statement. Метод setEscapeProcessing позволяет задать поведение обработки escape-последовательностей для отдельного объекта Statement.
Примечание: поскольку подготовленные инструкции обычно разбираются до вызова этого метода, отключение обработки escape-последовательностей для объектов PreparedStatements не окажет никакого эффекта.
- Параметры:
-
enable—trueдля включения обработки escape-последовательностей;falseдля ее отключения - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement
getQueryTimeout
int getQueryTimeout() throws SQLException
Statement. Если ограничение превышено, выбрасывается SQLException.- Возвращает:
- текущее ограничение времени ожидания запроса в секундах; ноль означает отсутствие ограничения
- Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
setQueryTimeout
void setQueryTimeout(int seconds) throws SQLException
Statement. По умолчанию время, отведенное на выполнение инструкции, не ограничено. Если ограничение превышено, выбрасывается SQLTimeoutException. Драйвер JDBC должен применять это ограничение к методам execute, executeQuery и executeUpdate. Примечание:Реализации драйверов JDBC могут также применять это ограничение к методам ResultSet (подробности см. в документации поставщика драйвера).
Примечание: Для пакетной обработки Statement выбор способа применения тайм-аута зависит от реализации: он может применяться к отдельным командам SQL, добавленным методом addBatch, или ко всему пакету команд SQL, вызванному методом executeBatch (подробности см. в документации поставщика драйвера).
- Параметры:
-
seconds— новое ограничение времени ожидания запроса в секундах; ноль означает отсутствие ограничения - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили не выполнено условиеseconds >= 0 - См. также:
cancel
void cancel() throws SQLException
Statement, если СУБД и драйвер поддерживают прерывание инструкции SQL. Этот метод может использоваться одним потоком для отмены инструкции, выполняемой другим потоком.- Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод
getWarnings
SQLWarning getWarnings() throws SQLException
Statement. Последующие предупреждения объекта Statement будут добавлены в цепочку этого объекта SQLWarning. Цепочка предупреждений автоматически очищается при каждом повторном выполнении инструкции. Этот метод нельзя вызывать для закрытого объекта Statement; в противном случае будет выброшено SQLException.
Примечание: При обработке объекта ResultSet все предупреждения, связанные с чтением этого объекта ResultSet, будут добавлены к нему, а не к объекту Statement, который его создал.
- Возвращает:
- первый объект
SQLWarningилиnull, если предупреждений нет - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement
clearWarnings
void clearWarnings() throws SQLException
Statement. После вызова этого метода метод getWarnings будет возвращать null, пока для этого объекта Statement не будет выдано новое предупреждение.- Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement
setCursorName
void setCursorName(String name) throws SQLException
String в качестве имени курсора SQL; оно будет использоваться последующими методами Statement объекта execute. Это имя можно использовать в инструкциях SQL позиционного обновления или удаления для идентификации текущей строки в объекте ResultSet, созданном этой инструкцией. Если база данных не поддерживает позиционное обновление или удаление, этот метод ничего не делает. Чтобы гарантировать курсору подходящий уровень изоляции для поддержки обновлений, инструкция SELECT курсора должна иметь вид SELECT FOR UPDATE. Если FOR UPDATE отсутствует, позиционные обновления могут завершиться неудачей. Примечание: По определению, позиционные обновления и удаления должны выполняться объектом Statement, отличным от того, который создал используемый для позиционирования объект ResultSet. Кроме того, имена курсоров должны быть уникальны в пределах одного соединения.
- Параметры:
-
name— новое имя курсора, которое должно быть уникальным в пределах одного соединения - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод
execute
boolean execute(String sql) throws SQLException
Метод execute выполняет инструкцию SQL и указывает тип первого результата. Затем необходимо использовать методы getResultSet или getUpdateCount для получения результата и метод getMoreResults для перехода к последующим результатам.
Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql— любая инструкция SQL - Возвращает:
-
true, если первый результат — объектResultSet;false, если это счетчик обновления или результатов нет - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementлибо метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException— если драйвер определил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и предпринял как минимум попытку отменить выполняющийся в данный моментStatement - См. также:
getResultSet
ResultSet getResultSet() throws SQLException
ResultSet. Этот метод следует вызывать только один раз для каждого результата.- Возвращает:
- текущий результат в виде объекта
ResultSetилиnull, если результат является счетчиком обновления или больше нет результатов - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
getUpdateCount
int getUpdateCount() throws SQLException
ResultSet или больше нет результатов, возвращается -1. Этот метод следует вызывать только один раз для каждого результата.- Возвращает:
- текущий результат в виде счетчика обновления; -1, если текущий результат является объектом
ResultSetили больше нет результатов - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
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 - См. также:
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
int getFetchDirection() throws SQLException
Statement. Если для этого объекта Statement направление выборки не было задано вызовом метода setFetchDirection, возвращаемое значение зависит от реализации.- Возвращает:
- направление выборки по умолчанию для наборов результатов, создаваемых этим объектом
Statement - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - С версии:
- 1.2
- См. также:
setFetchSize
void setFetchSize(int rows) throws SQLException
ResultSet, созданных этим объектом Statement. Если указано значение 0, подсказка игнорируется. Значение по умолчанию — 0.- Параметры:
-
rows— количество строк для извлечения - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили не выполнено условиеrows >= 0. - С версии:
- 1.2
- См. также:
getFetchSize
int getFetchSize() throws SQLException
ResultSet, созданных этим объектом Statement. Если для этого объекта Statement размер выборки не был задан вызовом метода setFetchSize, возвращаемое значение зависит от реализации.- Возвращает:
- размер выборки по умолчанию для наборов результатов, созданных этим объектом
Statement - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - С версии:
- 1.2
- См. также:
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
Statement. Команды из этого списка можно выполнить как пакет, вызвав метод executeBatch. Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql— обычно это инструкция SQLINSERTилиUPDATE - Исключения:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, драйвер не поддерживает пакетные обновления либо метод вызван дляPreparedStatementилиCallableStatement - С версии:
- 1.2
- См. также:
clearBatch
void clearBatch() throws SQLException
Statement.- Исключения:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили драйвер не поддерживает пакетные обновления - С версии:
- 1.2
- См. также:
executeBatch
int[] executeBatch() throws SQLException
int, который возвращается, упорядочены в соответствии с командами в пакете, которые расположены в том порядке, в котором они были добавлены в пакет. Элементы массива, возвращаемого методом executeBatch, могут иметь одно из следующих значений: - Число, большее или равное нулю, — указывает, что команда обработана успешно, и является счётчиком обновления, показывающим количество строк в базе данных, затронутых выполнением команды
- Значение
SUCCESS_NO_INFO— указывает, что команда обработана успешно, но количество затронутых строк неизвестноЕсли одна из команд пакетного обновления не выполнена должным образом, этот метод выбрасывает
BatchUpdateException, и JDBC-драйвер может продолжить обработку оставшихся команд в пакете или прекратить её. Однако поведение драйвера должно быть согласовано с конкретной СУБД: он должен либо всегда продолжать обработку команд, либо никогда её не продолжать. Если драйвер продолжает обработку после сбоя, массив, возвращаемый методомBatchUpdateException.getUpdateCounts, будет содержать столько же элементов, сколько команд в пакете, и как минимум один из элементов будет иметь следующее значение: - Значение
EXECUTE_FAILED— указывает, что команда не была выполнена успешно; встречается только в том случае, если драйвер продолжает обработку команд после сбоя команды
Возможные реализации и возвращаемые значения были изменены в Java 2 SDK, Standard Edition, версии 1.3, чтобы учесть возможность продолжения обработки команд в пакетном обновлении после выбрасывания объекта BatchUpdateException.
- Возвращает:
- массив счётчиков обновления, содержащий по одному элементу для каждой команды в пакете. Элементы массива упорядочены в соответствии с порядком добавления команд в пакет.
- Выбрасывает:
-
SQLException— если происходит ошибка доступа к базе данных, этот метод вызывается для закрытогоStatementили драйвер не поддерживает пакетные операторы. ВыбрасываетBatchUpdateException(подклассSQLException), если одна из отправленных в базу данных команд не выполнена должным образом или пытается вернуть набор результатов. -
SQLTimeoutException— когда драйвер определил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и предпринял хотя бы попытку отменить выполняющийся в данный моментStatement - Начиная с:
- 1.2
- См. также:
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
- См. также:
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
Statement. Драйвер проигнорирует флаг, если оператор SQL не является оператором INSERT или оператором SQL, способным возвращать автоматически сгенерированные ключи (список таких операторов зависит от поставщика). Примечание:Этот метод нельзя вызывать для PreparedStatement или CallableStatement.
- Параметры:
-
sql— оператор языка манипулирования данными SQL (DML), напримерINSERT,UPDATEилиDELETE; либо оператор SQL, который ничего не возвращает, например оператор DDL. -
autoGeneratedKeys— флаг, указывающий, следует ли сделать автоматически сгенерированные ключи доступными для получения; одна из следующих констант:Statement.RETURN_GENERATED_KEYSStatement.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
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
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
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
- См. также:
execute
boolean execute(String sql, int[] columnIndexes) throws SQLException
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
- См. также:
execute
boolean execute(String sql, String[] columnNames) throws SQLException
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
- См. также:
getResultSetHoldability
int getResultSetHoldability() throws SQLException
ResultSet, созданных этим объектом Statement.- Возвращает:
- либо
ResultSet.HOLD_CURSORS_OVER_COMMIT, либоResultSet.CLOSE_CURSORS_AT_COMMIT - Выбрасывает:
-
SQLException— если происходит ошибка доступа к базе данных или этот метод вызывается для закрытогоStatement - Начиная с:
- 1.4
isClosed
boolean isClosed() throws SQLException
Statement. Объект Statement закрыт, если для него был вызван метод close или если он был закрыт автоматически.- Возвращает:
- true, если этот объект
Statementзакрыт; false, если он всё ещё открыт - Выбрасывает:
-
SQLException— если происходит ошибка доступа к базе данных - Начиная с:
- 1.6
setPoolable
void setPoolable(boolean poolable) throws SQLException
Statement в пул или его исключение из пула. Указанное значение является подсказкой для реализации пула операторов, сообщающей, хочет ли приложение поместить оператор в пул. Диспетчер пула операторов сам решает, использовать ли эту подсказку. Значение пригодности оператора для пула применимо как к внутренним кэшам операторов, реализованным драйвером, так и к внешним кэшам операторов, реализованным серверами приложений и другими приложениями.
По умолчанию созданный Statement не предназначен для помещения в пул, а созданные PreparedStatement и CallableStatement предназначены для помещения в пул.
- Параметры:
-
poolable— если значение true, запрашивает помещение оператора в пул; если false — исключение оператора из пула - Выбрасывает:
-
SQLException— если этот метод вызывается для закрытогоStatement - Начиная с:
- 1.6
isPoolable
boolean isPoolable() throws SQLException
Statement для помещения в пул.- Возвращает:
-
true, еслиStatementпредназначен для помещения в пул; в противном случае —false - Выбрасывает:
-
SQLException— если этот метод вызывается для закрытогоStatement - Начиная с:
- 1.6
- См. также:
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
- См. также:
setLargeMaxRows
default void setLargeMaxRows(long max) throws SQLException
ResultSet, созданного этим объектом Statement, ограничение на максимальное количество строк, равное указанному числу. Если ограничение превышено, лишние строки отбрасываются без уведомления. Этот метод следует использовать, если ограничение на количество строк может превышать Integer.MAX_VALUE.
Реализация по умолчанию выбрасывает UnsupportedOperationException
- Параметры:
-
max— новое ограничение на максимальное количество строк; ноль означает отсутствие ограничения - Выбрасывает:
-
SQLException— если происходит ошибка доступа к базе данных, этот метод вызывается для закрытогоStatementили условиеmax >= 0не выполнено - Начиная с:
- 1.8
- См. также:
getLargeMaxRows
default long getLargeMaxRows() throws SQLException
ResultSet, созданный этим объектом Statement. Если это ограничение превышено, лишние строки отбрасываются без уведомления. Этот метод следует использовать, если возвращаемое ограничение на количество строк может превышать Integer.MAX_VALUE.
Реализация по умолчанию возвращает 0
- Возвращает:
- текущее максимальное количество строк для объекта
ResultSet, созданного этим объектомStatement; ноль означает отсутствие ограничения - Выбрасывает:
-
SQLException— если происходит ошибка доступа к базе данных или этот метод вызывается для закрытогоStatement - Начиная с:
- 1.8
- См. также:
executeLargeBatch
default long[] executeLargeBatch() throws SQLException
long возвращаемого массива расположены в соответствии с командами в пакете, которые упорядочены в соответствии с порядком их добавления в пакет. Элементы массива, возвращаемого методом executeLargeBatch, могут иметь одно из следующих значений: - Число, большее или равное нулю, — указывает, что команда обработана успешно, и является счетчиком обновленных строк, показывающим количество строк в базе данных, затронутых выполнением команды
- Значение
SUCCESS_NO_INFO— указывает, что команда обработана успешно, но количество затронутых строк неизвестноЕсли одна из команд пакетного обновления не выполнена должным образом, этот метод выбрасывает
BatchUpdateException, при этом драйвер JDBC может продолжить обработку оставшихся команд пакета или не продолжать ее. Однако поведение драйвера должно быть согласовано с конкретной СУБД: либо обработка команд всегда продолжается, либо никогда не продолжается. Если драйвер продолжает обработку после сбоя, массив, возвращаемый методомBatchUpdateException.getLargeUpdateCounts, будет содержать столько элементов, сколько команд в пакете, и по крайней мере один из элементов будет иметь следующее значение: - Значение
EXECUTE_FAILED— указывает, что команда не была выполнена успешно; встречается только в том случае, если драйвер продолжает обработку команд после сбоя команды
Этот метод следует использовать, если возвращаемое количество строк может превышать Integer.MAX_VALUE.
Реализация по умолчанию выбрасывает UnsupportedOperationException
- Возвращает:
- массив счетчиков обновленных строк, содержащий по одному элементу для каждой команды в пакете. Элементы массива упорядочены в соответствии с порядком добавления команд в пакет.
- Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили драйвер не поддерживает пакетные инструкции. ВыбрасываетBatchUpdateException(подклассSQLException), если одна из команд, отправленных в базу данных, не выполнена должным образом или пытается вернуть результирующий набор. -
SQLTimeoutException— если драйвер установил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и предпринял по крайней мере попытку отменить выполняемый в данный моментStatement - Начиная с:
- 1.8
- См. также:
executeLargeUpdate
default long executeLargeUpdate(String sql) throws SQLException
INSERT, UPDATE или DELETE либо инструкцией SQL, не возвращающей данных, например инструкцией DDL SQL. Этот метод следует использовать, если возвращаемое количество строк может превышать Integer.MAX_VALUE.
Примечание:этот метод нельзя вызывать для PreparedStatement или CallableStatement.
Реализация по умолчанию выбрасывает UnsupportedOperationException
- Параметры:
-
sql— инструкция языка манипулирования данными SQL (DML), напримерINSERT,UPDATEилиDELETE; либо инструкция SQL, не возвращающая данных, например инструкция DDL. - Возвращает:
- либо (1) количество строк для инструкций языка манипулирования данными SQL (DML), либо (2) 0 для инструкций SQL, не возвращающих данных
- Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, указанная инструкция SQL создает объектResultSet, метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException— если драйвер установил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и предпринял по крайней мере попытку отменить выполняемый в данный моментStatement - Начиная с:
- 1.8
executeLargeUpdate
default long executeLargeUpdate(String sql, int autoGeneratedKeys) throws SQLException
Statement. Драйвер игнорирует флаг, если инструкция SQL не является инструкцией INSERT или инструкцией SQL, способной возвращать автоматически сгенерированные ключи (список таких инструкций зависит от поставщика). Этот метод следует использовать, если возвращаемое количество строк может превышать Integer.MAX_VALUE.
Примечание:этот метод нельзя вызывать для PreparedStatement или CallableStatement.
Реализация по умолчанию выбрасывает SQLFeatureNotSupportedException
- Параметры:
-
sql— инструкция языка манипулирования данными SQL (DML), напримерINSERT,UPDATEилиDELETE; либо инструкция SQL, не возвращающая данных, например инструкция DDL. -
autoGeneratedKeys— флаг, указывающий, следует ли сделать автоматически сгенерированные ключи доступными для получения; одна из следующих констант:Statement.RETURN_GENERATED_KEYSStatement.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
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
INSERT или инструкцией SQL, способной возвращать автоматически сгенерированные ключи (список таких инструкций зависит от поставщика). Этот метод следует использовать, если возвращаемое количество строк может превышать Integer.MAX_VALUE.
Примечание:этот метод нельзя вызывать для PreparedStatement или CallableStatement.
Реализация по умолчанию выбрасывает SQLFeatureNotSupportedException
- Параметры:
-
sql— инструкция языка манипулирования данными SQL (DML), напримерINSERT,UPDATEилиDELETE; либо инструкция SQL, не возвращающая данных, например инструкция DDL. -
columnNames— массив имен столбцов, которые следует вернуть из вставленной строки - Возвращает:
- либо количество строк для инструкций
INSERT,UPDATEилиDELETE, либо 0 для инструкций SQL, не возвращающих данных - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, инструкция SQL возвращает объектResultSet, второй аргумент, переданный этому методу, не является массивомString, элементы которого представляют допустимые имена столбцов, либо метод вызван дляPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод -
SQLTimeoutException— если драйвер установил, что превышено значение времени ожидания, заданное методомsetQueryTimeout, и предпринял по крайней мере попытку отменить выполняемый в данный моментStatement - Начиная с:
- 1.8
enquoteLiteral
default String enquoteLiteral(String val) throws SQLException
String, заключенную в одинарные кавычки. Каждая одинарная кавычка в строке заменяется двумя одинарными кавычками.
Примеры преобразования: Значение Результат Hello 'Hello' G'Day 'G''Day' 'G''Day' '''G''''Day''' I'''M 'I''''''M'
- Требования к реализации:
- Реализация по умолчанию создает литерал следующим образом:
"'" + val.replace("'", "''") + "'". - Примечание по реализации:
- Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
- Параметры:
-
val— строка символов - Возвращает:
- строку, заключенную в одинарные кавычки, в которой каждая одинарная кавычка заменена двумя одинарными кавычками
- Выбрасывает:
-
NullPointerException— если val равенnull -
SQLException— если произошла ошибка доступа к базе данных - Начиная с:
- 9
enquoteIdentifier
default String enquoteIdentifier(String identifier, boolean alwaysDelimit) throws SQLException
simple SQL identifier или идентификатор с ограничителями. Идентификатор с ограничителями представляет имя объекта базы данных, например таблицы, столбца или представления, заключенное в ограничитель, которым обычно служат двойные кавычки, определенные стандартом SQL. Если identifier является простым идентификатором SQL:
- Если
alwaysDelimitравенfalse, возвращает исходное значение - если
alwaysDelimitравенtrue, заключает исходное значение в кавычки и возвращает его как идентификатор с ограничителями
identifier не является простым идентификатором SQL, возвращаемый идентификатор с ограничителями identifier должен быть заключен в ограничитель, возвращаемый методом DatabaseMetaData.getIdentifierQuoteString(). Если источник данных не поддерживает идентификаторы с ограничителями, выбрасывается SQLFeatureNotSupportedException. SQLException будет выброшено, если identifier содержит недопустимые символы для идентификатора с ограничителями или длина идентификатора недопустима для источника данных.
- Требования к реализации:
- Реализация по умолчанию использует следующие критерии для определения допустимого простого идентификатора SQL:
- Строка не заключена в двойные кавычки
- Первый символ — буква от a (
'\0061') до z ('\u007A') или от A ('\u0041') до Z ('\u005A') - Имя содержит только буквенно-цифровые символы ([0-9A-Za-z]) или символ «_»
SQLException, если:DatabaseMetaData.getIdentifierQuoteString()не возвращает двойную кавычку-
identifierсодержит символnullили двойную кавычку - Длина
identifierменьше 1 или больше 128 символов
Примеры преобразования: идентификатор alwaysDelimit Результат Hello false Hello Hello true "Hello" G'Day false "G'Day" "Bruce Wayne" false "Bruce Wayne" "Bruce Wayne" true "Bruce Wayne" "select" false "select" "select" true "select" GoodDay$ false "GoodDay$" Hello"World false SQLException "Hello"World" false SQLException - Примечание по реализации:
- Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
- Параметры:
-
identifier— идентификатор SQL -
alwaysDelimit— указывает, следует ли возвращать простой идентификатор SQL как идентификатор с ограничителями - Возвращает:
- простой идентификатор SQL или идентификатор с ограничителями
- Выбрасывает:
-
SQLException— если идентификатор недопустим -
SQLFeatureNotSupportedException— если источник данных не поддерживает идентификаторы с ограничителями -
NullPointerException— если identifier равенnull - Начиная с:
- 9
isSimpleIdentifier
default boolean isSimpleIdentifier(String identifier) throws SQLException
identifier является простым идентификатором SQL. Простой идентификатор SQL в стандарте SQL называется регулярным (или обычным) идентификатором. Регулярный идентификатор представляет имя объекта базы данных, например таблицы, столбца или представления. Правила для регулярного идентификатора:
- Первый символ — буква от a (
'\u0061') до z ('\u007A') или от A ('\u0041') до Z ('\u005A') - Имя содержит только буквенно-цифровые символы ([0-9A-Za-z]) или символ «_»
- Это не может быть зарезервированное слово SQL
Для регулярного идентификатора у источника данных могут быть дополнительные правила, например:
- Поддержка дополнительных символов в имени в соответствии с используемым языковым стандартом
- Поддержка другой максимальной длины идентификатора
- Требования к реализации:
- Реализация по умолчанию использует следующие критерии для определения допустимого простого идентификатора SQL:
- Идентификатор не заключен в двойные кавычки
- Первый символ — буква от a до z или от A до Z
- Идентификатор содержит только буквенно-цифровые символы ([0-9A-Za-z]) или символ «_»
- Идентификатор не является зарезервированным словом SQL
- Длина идентификатора составляет от 1 до 128 символов включительно
Примеры преобразования: идентификатор Простой идентификатор Hello true G'Day false "Bruce Wayne" false GoodDay$ false Hello"World false "Hello"World" false "select" false "from" false - Примечание по реализации:
- Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
- Параметры:
-
identifier— идентификатор SQL - Возвращает:
- true, если это простой идентификатор SQL; в противном случае false
- Выбрасывает:
-
NullPointerException— если identifier равенnull -
SQLException— если произошла ошибка доступа к базе данных - Начиная с:
- 9
enquoteNCharLiteral
default String enquoteNCharLiteral(String val) throws SQLException
String, представляющий литерал национального набора символов, заключенный в одинарные кавычки и снабженный префиксом в виде заглавной буквы N. Каждая одинарная кавычка в строке заменяется двумя одинарными кавычками.
Примеры преобразования: Значение Результат Hello N'Hello' G'Day N'G''Day' 'G''Day' N'''G''''Day''' I'''M N'I''''''M' N'Hello' N'N''Hello'''
- Требования к реализации:
- Реализация по умолчанию создает литерал следующим образом:
"N'" + val.replace("'", "''") + "'". - Примечание по реализации:
- Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных. Реализация enquoteNCharLiteral может принимать набор символов, отличный от набора, принимаемого реализацией enquoteLiteral того же драйвера.
- Параметры:
-
val— строка символов - Возвращает:
- результат замены каждого символа одинарной кавычки в аргументе двумя символами одинарной кавычки, к которому затем добавлен префикс «N».
- Выбрасывает:
-
NullPointerException— если val равенnull -
SQLException— если произошла ошибка доступа к базе данных - Начиная с:
- 9
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.