Интерфейс заявления
- Все суперинтерфейсы:
-
AutoCloseable,Wrapper
- Все известные подинтерфейсы:
-
CallableStatement,PreparedStatement
public interface Statement extends Wrapper, AutoCloseable
Объект, используемый для выполнения статического SQL-запроса и возврата полученных результатов.
По умолчанию, только один объект ResultSet на каждый объект Statement может быть открыт одновременно. Поэтому, если чтение одного объекта ResultSet переплетается с чтением другого, каждый из них должен быть сгенерирован разными объектами Statement. Все методы выполнения в интерфейсе Statement неявно закрывают текущий объект ResultSet заявления, если таковой открыт.
- С:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
CLOSE_ALL_RESULTS |
Константа, указывающая, что все объекты ResultSet, которые были ранее открыты, должны быть закрыты при вызове getMoreResults. |
static final int |
CLOSE_CURRENT_RESULT |
Константа, указывающая, что текущий объект ResultSet должен быть закрыт при вызове getMoreResults. |
static final int |
EXECUTE_FAILED |
Константа, указывающая, что произошла ошибка при выполнении пакетного запроса. |
static final int |
KEEP_CURRENT_RESULT |
Константа, указывающая, что текущий объект ResultSet не должен быть закрыт при вызове getMoreResults. |
static final int |
NO_GENERATED_KEYS |
Константа, указывающая, что сгенерированные ключи не должны быть доступны для извлечения. |
static final int |
RETURN_GENERATED_KEYS |
Константа, указывающая, что сгенерированные ключи должны быть доступны для извлечения. |
static final int |
SUCCESS_NO_INFO |
Константа, указывающая, что пакетный запрос был выполнен успешно, но количество затронутых строк недоступно. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addBatch |
Добавляет заданную SQL-команду в текущий список команд для этого объекта Statement. |
void |
cancel() |
Отменяет этот объект Statement, если DBMS и драйвер поддерживают отмену SQL-запроса. |
void |
clearBatch() |
Очищает текущий список SQL-команд этого объекта Statement. |
void |
clearWarnings() |
Очищает все предупреждения, сообщенные об этом объекте Statement. |
void |
close() |
Освобождает базу данных и JDBC-ресурсы этого объекта Statement немедленно, вместо ожидания, пока это произойдет при автоматическом закрытии. |
void |
closeOnCompletion() |
Указывает, что этот объект Statement будет закрыт, когда все его зависимые наборы результатов будут закрыты. |
default String |
enquoteIdentifier |
Возвращает SQL-идентификатор. |
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-запросом, который ничего не возвращает, например, SQL-запрос DDL. |
default long |
executeLargeUpdate |
Выполняет заданный SQL-запрос и сигнализирует драйверу с заданным флагом о том, должны ли автоматически сгенерированные ключи, созданные этим объектом Statement, быть доступны для извлечения. |
default long |
executeLargeUpdate |
Выполняет заданный SQL-запрос и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. |
default long |
executeLargeUpdate |
Выполняет заданный SQL-запрос и сигнализирует драйверу, что автоматически сгенерированные ключи, указанные в заданном массиве, должны быть доступны для извлечения. |
ResultSet |
executeQuery |
Выполняет заданный SQL-запрос, который возвращает один объект ResultSet. |
int |
executeUpdate |
Выполняет заданный SQL-запрос, который может быть запросом INSERT, UPDATE или DELETE, или SQL-запросом, который ничего не возвращает, например, SQL-запрос DDL. |
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. |
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, в заданное количество секунд. |
Методы, объявленные в интерфейсе 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
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
INSERT, UPDATE, или DELETE, или SQL-предложение, не возвращающее значения, например, SQL-предложение DDL. Примечание: Этот метод не может быть вызван для PreparedStatement или CallableStatement.
- Параметры:
-
sql- SQL-предложение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-предложение, не возвращающее значения, например, предложение DDL. - Возвращает:
- либо (1) количество строк для SQL-предложений языка манипулирования данными (DML), либо (2) 0 для SQL-предложений, не возвращающих значения
- Исключение:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод был вызван для закрытогоStatement, заданное SQL-предложение генерирует объектResultSet, метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что время ожидания, указанное методомsetQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполнениеStatement
close
void close() throws SQLException
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, до заданного числа. Если предел превышен, избыточные строки отбрасываются без сообщений об ошибках.- Parameters:
-
max- новое ограничение максимального числа строк; ноль означает отсутствие ограничения - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом объектеStatementили условиеmax >= 0не выполняется - See Also:
setEscapeProcessing
void setEscapeProcessing(boolean enable) throws SQLException
Свойство Connection и DataSource escapeProcessing могут быть использованы для изменения поведения обработки экранирования по умолчанию. Значение true (по умолчанию) включает обработку экранирования для всех объектов Statement. Значение false отключает обработку экранирования для всех объектов Statement. Метод setEscapeProcessing может быть использован для указания поведения обработки экранирования для отдельного объекта Statement.
Примечание: поскольку подготовленные запросы обычно парсятся до вызова этого метода, отключение обработки экранирования для объектов PreparedStatements не повлияет на результат.
- Parameters:
-
enable- значениеtrueдля включения обработки экранирования;falseдля ее отключения - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объектеStatement
getQueryTimeout
int getQueryTimeout() throws SQLException
Statement. Если лимит превышен, выбрасывается исключение SQLException.- Returns:
- текущее ограничение таймаута запроса в секундах; ноль означает отсутствие ограничения
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объектеStatement - See Also:
setQueryTimeout
void setQueryTimeout(int seconds) throws SQLException
Statement, до заданного числа секунд. По умолчанию нет ограничений на время выполнения запроса. Если лимит превышен, выбрасывается исключение SQLTimeoutException. Драйвер JDBC должен применить это ограничение к методам execute, executeQuery и executeUpdate. Примечание: Реализации драйверов JDBC также могут применять это ограничение к методам ResultSet (обратитесь к документации вашего поставщика драйвера для получения подробностей).
Примечание: В случае пакетной обработки Statement, определяется, применяется ли таймаут к отдельным SQL-командам, добавленным через метод addBatch, или ко всему пакету SQL-команд, вызываемому методом executeBatch (обратитесь к документации вашего поставщика драйвера для получения подробностей).
- Parameters:
-
seconds- новое ограничение таймаута запроса в секундах; ноль означает отсутствие ограничения - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом объектеStatementили условиеseconds >= 0не выполняется - See Also:
cancel
void cancel() throws SQLException
Statement, если DBMS и драйвер поддерживают прерывание SQL-запроса. Этот метод может использоваться одной нитью для отмены запроса, выполняемого другой нитью.- Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объектеStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод
getWarnings
SQLWarning getWarnings() throws SQLException
Statement. Последующие предупреждения объекта Statement будут присоединены к этому объекту SQLWarning. Цепочка предупреждений автоматически очищается каждый раз, когда запрос выполняется (перевыполняется). Этот метод не может быть вызван на закрытом объекте Statement; при этом будет выброшено исключение SQLException.
Примечание: Если вы обрабатываете объект ResultSet, любые предупреждения, связанные с чтением из этого объекта ResultSet, будут присоединены к нему, а не к объекту Statement, который его сгенерировал.
- Returns:
- первый объект
SQLWarningилиnull, если предупреждений нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объектеStatement
clearWarnings
void clearWarnings() throws SQLException
Statement. После вызова этого метода метод getWarnings вернет null до тех пор, пока новое предупреждение не будет сообщено для этого объекта Statement.- Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объектеStatement
setCursorName
void setCursorName(String name) throws SQLException
String, которое будет использоваться последующими методами объекта Statement execute. Это имя затем может быть использовано в SQL-запросах на изменение или удаление строк для идентификации текущей строки в объекте ResultSet, созданном этим запросом. Если база данных не поддерживает позиционированные изменения, этот метод является пустой операцией. Для того чтобы убедиться, что курсор имеет подходящий уровень изоляции для поддержки обновлений, запрос курсора должен иметь форму SELECT FOR UPDATE. Если FOR UPDATE отсутствует, позиционированные обновления могут завершиться неудачей. Примечание: По определению, выполнение позиционированных обновлений и удалений должно выполняться другим объектом Statement, чем тот, который сгенерировал объект ResultSet, используемый для позиционирования. Кроме того, имена курсоров должны быть уникальными в рамках соединения.
- Parameters:
-
name- новое имя курсора, которое должно быть уникальным в рамках соединения - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объектеStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод
execute
boolean execute(String sql) throws SQLException
Метод execute выполняет SQL-запрос и указывает форму первого результата. Затем вы должны использовать методы getResultSet или getUpdateCount для получения результата и getMoreResults для перехода к последующим результатам.
Примечание: Этот метод не может быть вызван на объектах PreparedStatement или CallableStatement.
- Parameters:
-
sql- любой SQL-запрос - Returns:
-
true, если первый результат является объектомResultSet;false, если это счётчик обновлений или результатов нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом объектеStatement, метод вызван на объектеPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, было превышено, и по крайней мере предпринял попытку отмены выполняющегосяStatement - See Also:
getResultSet
ResultSet getResultSet() throws SQLException
ResultSet. Этот метод должен быть вызван только один раз на каждый результат.- Returns:
- текущий результат в виде объекта
ResultSetилиnull, если результат является счётчиком обновлений или больше результатов нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом объектеStatement - See Also:
getUpdateCount
int getUpdateCount() throws SQLException
ResultSet или больше результатов нет, возвращается -1. Данный метод следует вызывать только один раз на результат.- Returns:
- текущий результат в виде счётчика обновлений; -1, если текущий результат является объектом
ResultSetили больше результатов нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - See Also:
getMoreResults
boolean getMoreResults() throws SQLException
Statement, возвращает true, если это объект ResultSet, и неявно закрывает любые текущие объекты ResultSet, полученные с помощью метода getResultSet. Больше результатов нет, когда выполняется следующее условие:
// stmt is a Statement object
((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
- Returns:
-
true, если следующий результат — объектResultSet;false, если это счётчик обновлений или больше результатов нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - See Also:
setFetchDirection
void setFetchDirection(int direction) throws SQLException
ResultSet, созданных с использованием этого объекта Statement. Значение по умолчанию — ResultSet.FETCH_FORWARD. Обратите внимание, что этот метод устанавливает направление выборки по умолчанию для наборов результатов, сгенерированных этим объектом Statement. Каждый набор результатов имеет собственные методы для получения и установки своего направления выборки.
- Parameters:
-
direction— начальное направление обработки строк - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили указанное направление не является одним изResultSet.FETCH_FORWARD,ResultSet.FETCH_REVERSEилиResultSet.FETCH_UNKNOWN - Since:
- 1.2
- See Also:
getFetchDirection
int getFetchDirection() throws SQLException
Statement. Если этот объект Statement не установил направление выборки, вызвав метод setFetchDirection, возвращаемое значение зависит от реализации.- Returns:
- значение по умолчанию для направления выборки наборов результатов, сгенерированных этим объектом
Statement - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - Since:
- 1.2
- See Also:
setFetchSize
void setFetchSize(int rows) throws SQLException
ResultSet, сгенерированных этим объектом Statement, нужны дополнительные строки. Если заданное значение равно нулю, подсказка игнорируется. Значение по умолчанию — ноль.- Parameters:
-
rows- количество строк для выборки - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили условиеrows >= 0не выполняется. - Since:
- 1.2
- See Also:
getFetchSize
int getFetchSize() throws SQLException
ResultSet, сгенерированных из этого объекта Statement. Если этот объект Statement не установил размер выборки, вызвав метод setFetchSize, возвращаемое значение зависит от реализации.- Returns:
- значение по умолчанию для размера выборки наборов результатов, сгенерированных этим объектом
Statement - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - Since:
- 1.2
- See Also:
getResultSetConcurrency
int getResultSetConcurrency() throws SQLException
ResultSet, сгенерированных этим объектом Statement.- Returns:
- либо
ResultSet.CONCUR_READ_ONLY, либоResultSet.CONCUR_UPDATABLE - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - Since:
- 1.2
getResultSetType
int getResultSetType() throws SQLException
ResultSet, сгенерированных этим объектом Statement.- Returns:
- одно из значений
ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVEилиResultSet.TYPE_SCROLL_SENSITIVE - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - Since:
- 1.2
addBatch
void addBatch(String sql) throws SQLException
Statement. Команды в этом списке могут быть выполнены как пакет с помощью метода executeBatch. Примечание: Этот метод не может быть вызван для PreparedStatement или CallableStatement.
- Parameters:
-
sql— обычно это SQL-команда или операторINSERTилиUPDATE - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, драйвер не поддерживает пакетные обновления, метод вызван дляPreparedStatementилиCallableStatement - Since:
- 1.2
- See Also:
clearBatch
void clearBatch() throws SQLException
Statement.- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили драйвер не поддерживает пакетные обновления - Since:
- 1.2
- See Also:
executeBatch
int[] executeBatch() throws SQLException
- Число, большее или равное нулю — указывает, что команда была обработана успешно, и представляет собой счётчик обновлений, дающий количество строк в базе данных, которые были затронуты выполнением команды.
- Значение
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.- Параметры:
-
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-запросом, способным возвращать автоматически сгенерированные ключи (список таких запросов зависит от поставщика).- Параметры:
-
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-запросом, способным возвращать автоматически сгенерированные ключи (список таких запросов зависит от поставщика).- Параметры:
-
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 или он закрыт автоматически.- Returns:
- true, если этот объект
Statementзакрыт; false, если он всё ещё открыт - Throws:
-
SQLException- если произошла ошибка доступа к базе данных - Since:
- 1.6
setPoolable
void setPoolable(boolean poolable) throws SQLException
Statement быть помещён в пул или нет. Указанное значение служит подсказкой для реализации пула заявок, указывая, хочет ли приложение, чтобы запрос был помещён в пул. Управляющий пулом запросов сам решает, использовать ли эту подсказку. Значение poolable запроса применимо как к внутренним кэшам запросов, реализованным драйвером, так и к внешним кэшам запросов, реализованным серверами приложений и другими приложениями.
По умолчанию, объект Statement не помещается в пул при создании, а объекты PreparedStatement и CallableStatement помещаются в пул при создании.
- Parameters:
-
poolable- если true, запрос помещается в пул; если false, запрос не помещается в пул - Throws:
-
SQLException- если этот метод вызван для закрытого объектаStatement - Since:
- 1.6
isPoolable
boolean isPoolable() throws SQLException
Statement в пул.- Returns:
-
true, если объектStatementпомещается в пул;falseв противном случае - Throws:
-
SQLException- если этот метод вызван для закрытого объектаStatement - Since:
- 1.6
- See Also:
closeOnCompletion
void closeOnCompletion() throws SQLException
Statement будет закрыт, когда все его зависимые наборы результатов будут закрыты. Если выполнение Statement не генерирует наборы результатов, этот метод не оказывает никакого влияния. Примечание: Несколько вызовов closeOnCompletion не переключают эффект на этот объект Statement. Однако вызов closeOnCompletion влияет как на последующее выполнение запросов, так и на запросы, которые в данный момент имеют открытые зависимые наборы результатов.
- Throws:
-
SQLException- если этот метод вызван для закрытого объектаStatement - Since:
- 1.7
isCloseOnCompletion
boolean isCloseOnCompletion() throws SQLException
Statement закрыт, когда все его зависимые наборы результатов будут закрыты.- Returns:
-
true, если объектStatementбудет закрыт, когда все его зависимые наборы результатов будут закрыты;falseв противном случае - Throws:
-
SQLException- если этот метод вызван для закрытого объектаStatement - Since:
- 1.7
getLargeUpdateCount
default long getLargeUpdateCount() throws SQLException
ResultSet или результатов больше нет, возвращается -1. Этот метод следует вызывать только один раз на результат. Этот метод следует использовать, когда количество строк, возвращаемых по результатам обновления, может превышать Integer.MAX_VALUE.
Реализация по умолчанию выбросит UnsupportedOperationException
- Returns:
- текущее значение счётчика обновлений; -1, если текущий результат — объект
ResultSetили результатов больше нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого объектаStatement - Since:
- 1.8
- See Also:
setLargeMaxRows
default void setLargeMaxRows(long max) throws SQLException
ResultSet, сгенерированный этим объектом Statement, до заданного числа. Если предел превышен, лишние строки отбрасываются. Этот метод следует использовать, когда предел строк может превысить Integer.MAX_VALUE.
Реализация по умолчанию выбросит UnsupportedOperationException
- Parameters:
-
max- новое ограничение на максимальное количество строк; ноль означает отсутствие ограничения - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatementили условиеmax >= 0не выполняется - Since:
- 1.8
- See Also:
getLargeMaxRows
default long getLargeMaxRows() throws SQLException
ResultSet, созданный этим объектом Statement. Если этот предел превышен, лишние строки отбрасываются. Этот метод следует использовать, когда возвращаемый предел строк может превысить Integer.MAX_VALUE.
Реализация по умолчанию вернёт 0
- Returns:
- текущее максимальное количество строк для объекта
ResultSet, созданного этим объектомStatement; ноль означает отсутствие ограничения - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого объектаStatement - Since:
- 1.8
- See Also:
executeLargeBatch
default long[] executeLargeBatch() throws SQLException
executeLargeBatch, могут быть следующими: - Число больше или равно нулю - указывает, что команда была обработана успешно и является счётчиком обновлений, показывающим количество строк в базе данных, затронутых выполнением команды
- Значение
SUCCESS_NO_INFO- указывает, что команда была обработана успешно, но количество затронутых строк неизвестноЕсли одна из команд в пакете обновлений не выполняется должным образом, этот метод выбрасывает
BatchUpdateException, и драйвер JDBC может или не может продолжить обработку оставшихся команд в пакете. Однако поведение драйвера должно быть согласовано с конкретной СУБД, либо всегда продолжая обработку команд, либо никогда не продолжая обработку команд. Если драйвер продолжает обработку после сбоя, массив, возвращаемый методомBatchUpdateException.getLargeUpdateCounts, будет содержать столько элементов, сколько команд в пакете, и по крайней мере один из элементов будет следующим: - Значение
EXECUTE_FAILED- указывает, что команда не была выполнена успешно и появляется только если драйвер продолжает обработку команд после сбоя
Этот метод следует использовать, когда возвращаемое количество строк может превышать Integer.MAX_VALUE.
Реализация по умолчанию выбросит UnsupportedOperationException
- Returns:
- массив счётчиков обновлений, содержащий по одному элементу для каждой команды в пакете. Элементы массива упорядочены по порядку добавления команд в пакет.
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatementили драйвер не поддерживает пакетные запросы. ВыбрасываетBatchUpdateException(подклассSQLException), если одна из команд, отправленных в базу данных, не выполняется должным образом или пытается вернуть набор результатов. -
SQLTimeoutException- когда драйвер определил, что время ожидания, указанное методомsetQueryTimeout, истекло и по крайней мере попытался отменить текущее выполнениеStatement - Since:
- 1.8
- See Also:
executeLargeUpdate
default long executeLargeUpdate(String sql) throws SQLException
INSERT, UPDATE, или DELETE, или SQL-оператором, не возвращающим строк, таким как SQL DDL-оператор. Этот метод следует использовать, когда количество возвращаемых строк может превысить Integer.MAX_VALUE.
Примечание:Этот метод нельзя вызывать на PreparedStatement или CallableStatement.
Реализация по умолчанию будет выбрасывать UnsupportedOperationException
- Параметры:
-
sql- оператор языка обработки данных SQL (DML), такой какINSERT,UPDATEилиDELETE; или SQL-оператор, который ничего не возвращает, например, DDL-оператор. - Возвращаемое значение:
- либо (1) количество строк для операторов языка обработки данных SQL (DML), либо (2) 0 для операторов SQL, которые ничего не возвращают
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, заданный SQL-оператор возвращает объектResultSet, метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что значение таймаута, указанное методомsetQueryTimeout, было превышено, и он, по крайней мере, попытался отменить текущую выполняющуюсяStatement - С:
- 1.8
executeLargeUpdate
default long executeLargeUpdate(String sql, int autoGeneratedKeys) throws SQLException
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'
- Примечание реализации:
- Реализации JDBC-драйверов могут потребоваться предоставить свою собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных.
- Параметры:
-
val- строка символов - Возвращаемое значение:
- Строка, заключенная в одинарные кавычки, с каждой одинарной кавычкой, преобразованной в две одинарные кавычки
- Исключения:
-
NullPointerException- если val являетсяnull -
SQLException- если произошла ошибка доступа к базе данных - С:
- 9
enquoteIdentifier
default String enquoteIdentifier(String identifier, boolean alwaysQuote) throws SQLException
identifier является простым идентификатором SQL: - Возвращает исходное значение, если
alwaysQuoteимеет значениеfalse - Возвращает идентификатор с разделителями, если
alwaysQuoteимеет значениеtrue
identifier не является простым идентификатором SQL, identifier будет заключено в двойные кавычки, если это не сделано уже. Если источник данных не поддерживает двойные кавычки для идентификаторов с разделителями, идентификатор должен быть заключен в строку, возвращаемую из DatabaseMetaData.getIdentifierQuoteString(). Если источник данных не поддерживает идентификаторы с разделителями, должно быть выброшено исключение SQLFeatureNotSupportedException. Будет выброшено исключение SQLException, если identifier содержит символы, недопустимые в идентификаторе с разделителями, или длина идентификатора недопустима для источника данных.
- Требования к реализации:
- По умолчанию реализация использует следующие критерии для определения допустимого простого идентификатора SQL:
- Строка не заключена в двойные кавычки
- Первый символ является буквенным символом от a до z или от A до Z
- Имя содержит только буквенно-цифровые символы или символ "_"
SQLException, если:-
identifierсодержит символnullили двойную кавычку и не является простым идентификатором SQL. - Длина
identifierменьше 1 или больше 128 символов
Примеры преобразования: идентификатор alwaysQuote Результат Hello false Hello Hello true "Hello" G'Day false "G'Day" "Bruce Wayne" false "Bruce Wayne" "Bruce Wayne" true "Bruce Wayne" GoodDay$ false "GoodDay$" Hello"World false SQLException "Hello"World" false SQLException - Примечание о реализации:
- Реализации драйверов JDBC могут потребоваться предоставить собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных.
- Параметры:
-
identifier- идентификатор SQL -
alwaysQuote- указывает, следует ли возвращать простой идентификатор SQL как идентификатор с кавычками - Возвращает:
- Простой идентификатор SQL или идентификатор с разделителями
- Выбрасывает:
-
SQLException- если идентификатор не является допустимым идентификатором -
SQLFeatureNotSupportedException- если источник данных не поддерживает идентификаторы с разделителями -
NullPointerException- если идентификаторnull - С:
- 9
isSimpleIdentifier
default boolean isSimpleIdentifier(String identifier) throws SQLException
identifier простым идентификатором SQL.- Требования к реализации:
- По умолчанию реализация использует следующие критерии для определения допустимого простого идентификатора SQL:
- Строка не заключена в двойные кавычки
- Первый символ является буквенным символом от a до z или от A до Z
- Строка содержит только буквенно-цифровые символы или символ "_"
- Длина строки находится в диапазоне от 1 до 128 символов включительно
Примеры преобразования: идентификатор Простой идентификатор Hello true G'Day false "Bruce Wayne" false GoodDay$ false Hello"World false "Hello"World" false - Примечание о реализации:
- Реализации драйверов JDBC могут потребоваться предоставить собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных.
- Параметры:
-
identifier- идентификатор SQL - Возвращает:
- true, если это простой идентификатор SQL, иначе false
- Выбрасывает:
-
NullPointerException- если идентификаторnull -
SQLException- если произошла ошибка доступа к базе данных - С:
- 9
enquoteNCharLiteral
default String enquoteNCharLiteral(String val) throws SQLException
Примеры преобразования: Значение Результат Hello N'Hello' G'Day N'G''Day' 'G''Day' N'''G''''Day''' I'''M N'I''''''M' N'Hello' N'N''Hello'''
- Примечание о реализации:
- Реализации драйверов JDBC могут потребоваться предоставить собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных. Реализация enquoteNCharLiteral может принимать другой набор символов, чем реализация enquoteLiteral в тех же драйверах.
- Параметры:
-
val- строка символов - Возвращает:
- результат замены каждого символа одинарной кавычки в аргументе на два символа одинарной кавычки, а затем этот весь результат префикс с 'N'.
- Выбрасывает:
-
NullPointerException- если valnull -
SQLException- если произошла ошибка доступа к базе данных - С:
- 9
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.sql/java/sql/Statement.html