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