Описание интерфейса
- Все суперинтерфейсы:
-
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, если база данных и драйвер поддерживают прерывание 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, которое будет использоваться последующими методами объекта Statement 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.
- Parameters:
-
sql- SQL-оператор, который отправляется в базу данных, обычно статический SQL-SELECTоператор - Returns:
- объект
ResultSet, содержащий данные, полученные в результате запроса; никогда неnull - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, заданный SQL-оператор возвращает что-либо кроме одного объектаResultSet, метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполнениеStatement
executeUpdate
int executeUpdate(String sql) throws SQLException
INSERT, UPDATE, или DELETE оператором или SQL-оператором, не возвращающим ничего, например, SQL-DDL-оператором. Примечание:Этот метод нельзя вызвать для PreparedStatement или CallableStatement.
- Parameters:
-
sql- оператор языка манипулирования данными SQL (DML), такой какINSERT,UPDATEилиDELETE; или SQL-оператор, не возвращающий ничего, например, DDL-оператор. - Returns:
- либо (1) количество строк для операторов языка манипулирования данными SQL (DML), либо (2) 0 для SQL-операторов, не возвращающих ничего
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatement, заданный SQL-оператор возвращает объектResultSet, метод вызван дляPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполнениеStatement
close
void close() throws SQLException
Statement немедленно вместо ожидания, пока это произойдет автоматически при закрытии. Обычно рекомендуется освобождать ресурсы сразу же после использования, чтобы избежать блокировки ресурсов базы данных. Вызов метода close для объекта Statement, который уже закрыт, не имеет эффекта.
Примечание:При закрытии объекта Statement его текущий объект ResultSet, если он существует, также закрывается.
- Specified by:
-
closeв интерфейсеAutoCloseable - Throws:
-
SQLException- если произошла ошибка доступа к базе данных
getMaxFieldSize
int getMaxFieldSize() throws SQLException
ResultSet, созданном этим объектом Statement. Это ограничение применяется только к столбцам BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR и LONGVARCHAR. Если предел превышен, избыточные данные отбрасываются.- Returns:
- текущее ограничение размера столбца для столбцов, хранящих символьные и двоичные значения; ноль означает, что ограничение отсутствует
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
setMaxFieldSize
void setMaxFieldSize(int max) throws SQLException
ResultSet, созданном этим объектом Statement. Это ограничение применяется только к полям BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR и LONGVARCHAR. Если предел превышен, избыточные данные отбрасываются. Для максимальной переносимости используйте значения, большие, чем 256.- Parameters:
-
max- новое ограничение размера столбца в байтах; ноль означает, что ограничение отсутствует - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили условиеmax >= 0не выполняется - См. также:
getMaxRows
int getMaxRows() throws SQLException
ResultSet, созданный этим объектом Statement. Если это ограничение превышено, избыточные строки отбрасываются.- Returns:
- текущее максимальное количество строк для объекта
ResultSet, созданного этим объектомStatement; ноль означает, что ограничение отсутствует - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоStatement - См. также:
setMaxRows
void setMaxRows(int max) throws SQLException
ResultSet, сгенерированный этим объектом Statement, на заданное значение. Если ограничение превышено, избыточные строки отбрасываются.- Parameters:
-
max- новое ограничение максимального количества строк; ноль означает, что ограничение отсутствует - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытогоStatementили условиеmax >= 0не выполняется - См. также:
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, если СУБД и драйвер поддерживают прерывание 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
int возвращаемого массива упорядочены так, чтобы соответствовать командам в пакете, которые упорядочены в порядке добавления в пакет. Элементы в массиве, возвращаемом методом executeBatch, могут быть следующими: - Число, большее или равное нулю — указывает, что команда была обработана успешно и является счётом обновления, указывающим количество строк в базе данных, затронутых выполнением команды
- Значение
SUCCESS_NO_INFO— указывает, что команда была обработана успешно, но количество затронутых строк неизвестноЕсли одна из команд в пакете обновлений не выполняется должным образом, этот метод выбрасывает исключение
BatchUpdateException, и JDBC-драйвер может или не может продолжить обработку оставшихся команд в пакете. Однако поведение драйвера должно соответствовать конкретной СУБД, либо всегда продолжать обработку команд, либо никогда не продолжать обработку команд. Если драйвер продолжает обработку после ошибки, массив, возвращаемый методомBatchUpdateException.getUpdateCounts, будет содержать столько элементов, сколько команд в пакете, и по крайней мере один из элементов будет следующим: - Значение
EXECUTE_FAILED— указывает, что команда не была выполнена успешно и появляется только в том случае, если драйвер продолжает обработку команд после ошибки
Возможные реализации и возвращаемые значения были изменены в Java 2 SDK, Standard Edition, версии 1.3, чтобы учесть возможность продолжения обработки команд в пакетном обновлении после того, как был сброшен объект BatchUpdateException.
- Returns:
- массив счётов обновления, содержащий по одному элементу для каждой команды в пакете. Элементы массива упорядочены в соответствии с порядком добавления команд в пакет.
- Throws:
-
SQLException- если происходит ошибка доступа к базе данных, этот метод вызывается для закрытого объектаStatementили драйвер не поддерживает пакетные операторы. ВыбрасываетBatchUpdateException(подклассSQLException), если одна из команд, отправленных в базу данных, не выполняется должным образом или пытается вернуть набор результатов. -
SQLTimeoutException- когда драйвер определил, что значение тайм-аута, заданное методомsetQueryTimeout, было превышено, и по крайней мере попытался отменить текущее выполняемоеStatement - Since:
- 1.2
- See Also:
getConnection
Connection getConnection() throws SQLException
Connection, который произвёл этот объект Statement.- Returns:
- соединение, которое произвело этот оператор
- Throws:
-
SQLException- если происходит ошибка доступа к базе данных или этот метод вызывается для закрытого объектаStatement - Since:
- 1.2
getMoreResults
boolean getMoreResults(int current) throws SQLException
Statement, обрабатывает любые текущие объекты ResultSet в соответствии с инструкциями, заданными данным флагом, и возвращает true, если следующий результат является объектом ResultSet. Результатов больше нет, когда выполняется следующее условие:
// stmt is a Statement object
((stmt.getMoreResults(current) == false) && (stmt.getUpdateCount() == -1))
- Parameters:
-
current- одно из следующихStatementконстант, указывающих, что должно произойти с текущими объектамиResultSet, полученными с помощью методаgetResultSet:Statement.CLOSE_CURRENT_RESULT,Statement.KEEP_CURRENT_RESULTилиStatement.CLOSE_ALL_RESULTS - Returns:
-
true, если следующий результат является объектомResultSet;false, если это счёт обновления или больше результатов нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatementили переданный аргумент не является одним из следующих:Statement.CLOSE_CURRENT_RESULT,Statement.KEEP_CURRENT_RESULTилиStatement.CLOSE_ALL_RESULTS -
SQLFeatureNotSupportedException- еслиDatabaseMetaData.supportsMultipleOpenResultsвозвращаетfalseи в качестве аргумента переданы либоStatement.KEEP_CURRENT_RESULT, либоStatement.CLOSE_ALL_RESULTS. - Since:
- 1.4
- See Also:
getGeneratedKeys
ResultSet getGeneratedKeys() throws SQLException
Statement. Если этот объект Statement не сгенерировал ключей, возвращается пустой объект ResultSet. Примечание: Если столбцы, представляющие сгенерированные ключи, не были указаны, реализация драйвера JDBC определит столбцы, которые лучше всего представляют сгенерированные ключи.
- Returns:
- объект
ResultSet, содержащий сгенерированный(ые) ключ(и), сгенерированные при выполнении этого объектаStatement - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого объектаStatement -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Since:
- 1.4
executeUpdate
int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
Statement, быть доступны для получения. Драйвер проигнорирует флаг, если SQL-утверждение не является утверждением INSERT или SQL-утверждением, способным возвращать сгенерированные ключи (список таких утверждений зависит от поставщика). Примечание: Этот метод не может быть вызван для объектов PreparedStatement или CallableStatement.
- Parameters:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL. -
autoGeneratedKeys- флаг, указывающий, должны ли сгенерированные ключи быть доступны для получения; одна из следующих констант:Statement.RETURN_GENERATED_KEYSStatement.NO_GENERATED_KEYS - Returns:
- либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatement, данное SQL-утверждение возвращает объектResultSet, данная константа не является одной из разрешённых, метод вызван для объектаPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполняемоеStatement - Since:
- 1.4
executeUpdate
int executeUpdate(String sql, int[] columnIndexes) throws SQLException
INSERT или SQL-утверждением, способным возвращать сгенерированные ключи (список таких утверждений зависит от поставщика). Примечание: Этот метод не может быть вызван для объектов PreparedStatement или CallableStatement.
- Parameters:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL. -
columnIndexes- массив индексов столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки - Returns:
- либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatement, SQL-утверждение возвращает объектResultSet, второй аргумент, переданный в этот метод, не является массивомint, элементы которого являются допустимыми индексами столбцов, метод вызван для объектаPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполняемоеStatement - Since:
- 1.4
executeUpdate
int executeUpdate(String sql, String[] columnNames) throws SQLException
INSERT или SQL-утверждением, способным возвращать сгенерированные ключи (список таких утверждений зависит от поставщика). Примечание: Этот метод не может быть вызван для объектов PreparedStatement или CallableStatement.
- Parameters:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL. -
columnNames- массив имён столбцов, которые должны быть возвращены из вставленной строки - Returns:
- либо количество строк для утверждений
INSERT,UPDATEилиDELETE, либо 0 для SQL-утверждений, которые ничего не возвращают - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого объектаStatement, SQL-утверждение возвращает объектResultSet, второй аргумент, переданный в этот метод, не является массивомString, элементы которого являются допустимыми именами столбцов, метод вызван для объектаPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, заданное методомsetQueryTimeout, истекло, и по крайней мере попытался отменить текущее выполняемоеStatement - Since:
- 1.4
выполнить
boolean execute(String sql, int autoGeneratedKeys) throws SQLException
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
- См. также:
выполнить
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
- См. также:
выполнить
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 быть помещен в пул или нет. Указанное значение является подсказкой для реализации пула утверждений, указывающей, хочет ли приложение, чтобы утверждение было помещено в пул. Управление пулом утверждений решает, использовать ли подсказку. Значение poolable утверждения применимо как к внутренним кэшам утверждений, реализованным драйвером, так и к внешним кэшам утверждений, реализованным серверами приложений и другими приложениями.
По умолчанию 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 влияет как на последующее выполнение операторов, так и на операторы, которые в настоящее время имеют открытые зависимые наборы результатов.
- 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
- Parameters:
-
sql- оператор SQL Data Manipulation Language (DML), например,INSERT,UPDATEилиDELETE; или SQL-запрос, не возвращающий ничего, например, DDL-запрос. - Returns:
- либо (1) счётчик строк для SQL Data Manipulation Language (DML)-запросов, либо (2) 0 для SQL-запросов, не возвращающих ничего
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызывается для закрытогоStatement, заданный SQL-запрос производит объектResultSet, метод вызывается дляPreparedStatementилиCallableStatement -
SQLTimeoutException- когда драйвер определил, что истекло время ожидания, заданное методомsetQueryTimeout, и по крайней мере попытался отменить текущее выполняющеесяStatement - Since:
- 1.8
executeLargeUpdate
default long executeLargeUpdate(String sql, int autoGeneratedKeys) throws SQLException
Statement объектом, быть доступны для извлечения. Драйвер проигнорирует флаг, если SQL-утверждение не является INSERT утверждением или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика). Этот метод должен использоваться, когда количество возвращённых строк может превысить Integer.MAX_VALUE.
Примечание: Этот метод нельзя вызывать на PreparedStatement или CallableStatement.
По умолчанию реализация будет выбрасывать SQLFeatureNotSupportedException
- Parameters:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL. -
autoGeneratedKeys- флаг, указывающий, должны ли быть доступны для извлечения автоматически сгенерированные ключи; одна из следующих констант:Statement.RETURN_GENERATED_KEYSStatement.NO_GENERATED_KEYS - Returns:
- либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызывается на закрытомStatement, заданное SQL-утверждение возвращает объектResultSet, заданная константа не является одной из разрешённых, метод вызывается наPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS -
SQLTimeoutException- когда драйвер определил, что значение таймаута, указанное методомsetQueryTimeout, было превышено и, по крайней мере, попытался отменить текущуюStatement - Since:
- 1.8
executeLargeUpdate
default long executeLargeUpdate(String sql, int[] columnIndexes) throws SQLException
INSERT утверждением или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика). Этот метод должен использоваться, когда количество возвращённых строк может превысить Integer.MAX_VALUE.
Примечание: Этот метод нельзя вызывать на PreparedStatement или CallableStatement.
По умолчанию реализация будет выбрасывать SQLFeatureNotSupportedException
- Parameters:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL. -
columnIndexes- массив индексов столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки - Returns:
- либо (1) количество строк для SQL-утверждений языка манипулирования данными (DML), либо (2) 0 для SQL-утверждений, которые ничего не возвращают
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызывается на закрытомStatement, SQL-утверждение возвращает объектResultSet, второй аргумент, переданный в этот метод, не является массивомint, элементы которого являются допустимыми индексами столбцов, метод вызывается наPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, указанное методомsetQueryTimeout, было превышено и, по крайней мере, попытался отменить текущуюStatement - Since:
- 1.8
executeLargeUpdate
default long executeLargeUpdate(String sql, String[] columnNames) throws SQLException
INSERT утверждением или SQL-утверждением, способным возвращать автоматически сгенерированные ключи (список таких утверждений зависит от поставщика). Этот метод должен использоваться, когда количество возвращённых строк может превысить Integer.MAX_VALUE.
Примечание: Этот метод нельзя вызывать на PreparedStatement или CallableStatement.
По умолчанию реализация будет выбрасывать SQLFeatureNotSupportedException
- Parameters:
-
sql- SQL-утверждение языка манипулирования данными (DML), например,INSERT,UPDATEилиDELETE; или SQL-утверждение, которое ничего не возвращает, например, утверждение DDL. -
columnNames- массив имён столбцов, которые должны быть возвращены из вставленной строки - Returns:
- либо количество строк для
INSERT,UPDATEилиDELETEутверждений, либо 0 для SQL-утверждений, которые ничего не возвращают - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызывается на закрытомStatement, SQL-утверждение возвращает объектResultSet, второй аргумент, переданный в этот метод, не является массивомString, элементы которого являются допустимыми именами столбцов, метод вызывается наPreparedStatementилиCallableStatement -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод -
SQLTimeoutException- когда драйвер определил, что значение таймаута, указанное методомsetQueryTimeout, было превышено и, по крайней мере, попытался отменить текущуюStatement - Since:
- 1.8
enquoteLiteral
default String enquoteLiteral(String val) throws SQLException
String, заключённый в одинарные кавычки. Любое вхождение одиночной кавычки в строке будет заменено двумя одиночными кавычками.
Примеры преобразования: Значение Результат Hello 'Hello' G'Day 'G''Day' 'G''Day' '''G''''Day''' I'''M 'I''''''M'
- Implementation Note:
- Реализации JDBC-драйверов могут потребоваться предоставить собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных.
- Parameters:
-
val- строка символов - Returns:
- Строка, заключённая в одинарные кавычки, в которой каждая одиночная кавычка преобразована в две одиночные кавычки
- Throws:
-
NullPointerException- если val являетсяnull -
SQLException- если произошла ошибка доступа к базе данных - Since:
- 9
enquoteIdentifier
default String enquoteIdentifier(String identifier, boolean alwaysQuote) throws SQLException
identifier — это простой идентификатор SQL:
- Возвращает исходное значение, если
alwaysQuoteравноfalse - Возвращает разграниченный идентификатор, если
alwaysQuoteравноtrue
identifier не является простым идентификатором SQL, то identifier будет заключено в двойные кавычки, если это не сделано уже. Если источник данных не поддерживает двойные кавычки для разграниченных идентификаторов, идентификатор должен быть заключён в строку, возвращаемую из DatabaseMetaData.getIdentifierQuoteString(). Если источник данных не поддерживает разграниченные идентификаторы, должно быть выброшено исключение SQLFeatureNotSupportedException.
Будет выброшено исключение SQLException, если identifier содержит недопустимые символы для разграниченного идентификатора или длина идентификатора неверна для источника данных.
- Требования к реализации:
- По умолчанию реализация использует следующие критерии для определения допустимого простого идентификатора SQL:
- Строка не заключена в двойные кавычки
- Первый символ — это буквенный символ от a до z или от A до Z
- Имя содержит только буквенно-цифровые символы или символ "_"
SQLException, если:-
identifierсодержит недопустимый символ или двойную кавычку и не является простым идентификатором SQL. - Длина
identifierменьше 1 или больше 128 символов
Примеры преобразования: идентификатор alwaysQuote Результат Hello false Hello Hello true "Hello" G'Day false "G'Day" "Bruce Wayne" false "Bruce Wayne" "Bruce Wayne" true "Bruce Wayne" GoodDay$ false "GoodDay$" Hello"World false SQLException "Hello"World" false SQLException - Примечание к реализации:
- Реализации драйверов JDBC могут потребоваться предоставить собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных.
- Параметры:
-
identifier— идентификатор SQL -
alwaysQuote— указывает, должен ли простой идентификатор SQL возвращаться как идентификатор в кавычках - Возвращает:
- Простой идентификатор SQL или разграниченный идентификатор
- Выбрасывает:
-
SQLException— если идентификатор не является допустимым идентификатором -
SQLFeatureNotSupportedException— если источник данных не поддерживает разграниченные идентификаторы -
NullPointerException— если идентификаторnull - С:
- 9
isSimpleIdentifier
default boolean isSimpleIdentifier(String identifier) throws SQLException
identifier простым идентификатором SQL.- Требования к реализации:
- По умолчанию реализация использует следующие критерии для определения допустимого простого идентификатора SQL:
- Строка не заключена в двойные кавычки
- Первый символ — это буквенный символ от a до z или от A до Z
- Строка содержит только буквенно-цифровые символы или символ "_"
- Длина строки находится в пределах от 1 до 128 символов включительно
Примеры преобразования: идентификатор Простой идентификатор Hello true G'Day false "Bruce Wayne" false GoodDay$ false Hello"World false "Hello"World" false - Примечание к реализации:
- Реализации драйверов JDBC могут потребоваться предоставить собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных.
- Параметры:
-
identifier— идентификатор SQL - Возвращает:
- true, если это простой идентификатор SQL, иначе false
- Выбрасывает:
-
NullPointerException— если идентификаторnull -
SQLException— если произошла ошибка доступа к базе данных - С:
- 9
enquoteNCharLiteral
default String enquoteNCharLiteral(String val) throws SQLException
String, представляющую строковый литерал National Character Set, заключённый в одинарные кавычки и с префиксом заглавной буквы N. Любой одиночный символ апострофа в строке будет заменён двумя одинарными апострофами.
Примеры преобразования: Значение Результат Hello N'Hello' G'Day N'G''Day' 'G''Day' N'''G''''Day''' I'''M N'I''''''M' N'Hello' N'N''Hello'''
- Примечание к реализации:
- Реализации драйверов JDBC могут потребоваться предоставить собственную реализацию этого метода, чтобы удовлетворить требованиям базового источника данных. Реализация enquoteNCharLiteral может принимать другой набор символов, чем реализация enquoteLiteral в том же драйвере.
- Параметры:
-
val— строка символов - Возвращает:
- Результат замены каждого символа одиночной кавычки в аргументе двумя символами одиночных кавычек, с последующим префиксом 'N'.
- Выбрасывает:
-
NullPointerException— если valnull -
SQLException— если произошла ошибка доступа к базе данных - С:
- 9
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.sql/java/sql/Statement.html