Подключение к интерфейсу
- Все суперинтерфейсы:
-
AutoCloseable,Wrapper
public interface Connection extends Wrapper, AutoCloseable
Подключение (сессия) к конкретной базе данных. SQL-запросы выполняются и результаты возвращаются в контексте подключения.
База данных объекта Connection способна предоставлять информацию, описывающую ее таблицы, поддерживаемую SQL-грамматику, хранимые процедуры, возможности этого подключения и так далее. Эта информация получается с помощью метода getMetaData.
Примечание: При настройке Connection, приложения JDBC должны использовать соответствующий метод Connection, например, setAutoCommit или setTransactionIsolation. Приложения не должны вызывать SQL-команды напрямую для изменения конфигурации подключения, когда доступен метод JDBC. По умолчанию объект Connection находится в режиме автоматического подтверждения, что означает, что он автоматически подтверждает изменения после выполнения каждой команды. Если режим автоматического подтверждения отключен, метод commit должен быть явно вызван для подтверждения изменений; в противном случае изменения в базе данных не будут сохранены.
Новый объект Connection, созданный с помощью ядра API JDBC 2.1, имеет связанную с ним пустую карту типов. Пользователь может ввести пользовательское отображение для UDT в этой карте типов. Когда UDT извлекается из источника данных с помощью метода ResultSet.getObject, метод getObject проверит карту типов подключения, чтобы определить, существует ли запись для этого UDT. Если это так, метод getObject сопоставит UDT с указанным классом. Если записи нет, UDT будет сопоставлен с использованием стандартного отображения.
Пользователь может создать новую карту типов, которая является объектом java.util.Map, добавить в нее запись и передать ее методам java.sql, которые могут выполнять пользовательское сопоставление. В этом случае метод будет использовать предоставленную карту типов вместо карты, связанной с подключением.
Например, следующий фрагмент кода указывает, что SQL-тип ATHLETES будет сопоставлен с классом Athletes на языке программирования Java. Фрагмент кода извлекает карту типов для объекта Connection
con, вставляет запись в нее и затем устанавливает карту типов с новой записью в качестве карты типов подключения.
java.util.Map map = con.getTypeMap();
map.put("mySchemaName.ATHLETES", Class.forName("Athletes"));
con.setTypeMap(map);
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
TRANSACTION_NONE |
Константа, указывающая, что транзакции не поддерживаются. |
static final int |
TRANSACTION_READ_COMMITTED |
Константа, указывающая, что грязные чтения предотвращаются; невоспроизводимые чтения и призрачные чтения могут произойти. |
static final int |
TRANSACTION_READ_UNCOMMITTED |
Константа, указывающая, что грязные чтения, невоспроизводимые чтения и призрачные чтения могут произойти. |
static final int |
TRANSACTION_REPEATABLE_READ |
Константа, указывающая, что грязные чтения и невоспроизводимые чтения предотвращаются; призрачные чтения могут произойти. |
static final int |
TRANSACTION_SERIALIZABLE |
Константа, указывающая, что грязные чтения, невоспроизводимые чтения и призрачные чтения предотвращаются. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
abort |
Закрывает открытое соединение. |
default void |
beginRequest() |
Подсказка драйверу о начале запроса, независимой единицы работы, на этом соединении. |
void |
clearWarnings() |
Очищает все предупреждения, сообщённые для этого объекта Connection. |
void |
close() |
Освобождает базу данных и ресурсы JDBC этого объекта Connection немедленно вместо ожидания их автоматического освобождения. |
void |
commit() |
Делает все изменения, внесённые с момента предыдущего сохранения/отката, постоянными и освобождает все блокировки базы данных, в настоящее время удерживаемые этим объектом Connection. |
Array |
createArrayOf |
Фабричный метод для создания объектов Array. |
Blob |
createBlob() |
Создаёт объект, реализующий интерфейс Blob. |
Clob |
createClob() |
Создаёт объект, реализующий интерфейс Clob. |
NClob |
createNClob() |
Создаёт объект, реализующий интерфейс NClob. |
SQLXML |
createSQLXML() |
Создаёт объект, реализующий интерфейс SQLXML. |
Statement |
createStatement() |
Создаёт объект Statement, для отправки SQL-запросов в базу данных. |
Statement |
createStatement |
Создаёт объект Statement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. |
Statement |
createStatement |
Создаёт объект Statement, который будет генерировать объекты ResultSet с заданным типом, конкурентностью и удерживаемостью. |
Struct |
createStruct |
Фабричный метод для создания объектов Struct. |
default void |
endRequest() |
Подсказка драйверу о завершении запроса, независимой единицы работы. |
boolean |
getAutoCommit() |
Возвращает текущий режим автоматического подтверждения для этого объекта Connection. |
String |
getCatalog() |
Возвращает текущее имя каталога этого объекта Connection. |
Properties |
getClientInfo() |
Возвращает список, содержащий имя и текущее значение каждого свойства клиентской информации, поддерживаемого драйвером. |
String |
getClientInfo |
Возвращает значение свойства клиентской информации, указанного по имени. |
int |
getHoldability() |
Возвращает текущую удерживаемость объектов ResultSet, созданных с использованием этого объекта Connection. |
DatabaseMetaData |
getMetaData() |
Возвращает объект DatabaseMetaData, содержащий метаданные о базе данных, к которой это объект Connection представляет соединение. |
int |
getNetworkTimeout() |
Возвращает количество миллисекунд, которое драйвер будет ждать завершения запроса к базе данных. |
String |
getSchema() |
Возвращает текущее имя схемы этого объекта Connection. |
int |
getTransactionIsolation() |
Возвращает текущий уровень изоляции транзакции этого объекта Connection. |
Map<String, |
getTypeMap() |
Возвращает объект Map, связанный с этим объектом Connection. |
SQLWarning |
getWarnings() |
Возвращает первое предупреждение, сообщённое вызовами этого объекта Connection. |
boolean |
isClosed() |
Возвращает, был ли закрыт этот объект Connection. |
boolean |
isReadOnly() |
Возвращает, находится ли этот объект Connection в режиме только для чтения. |
boolean |
isValid |
Возвращает true, если соединение не закрыто и всё ещё валидно. |
String |
nativeSQL |
Преобразует данный SQL-запрос в системную родную грамматику SQL. |
CallableStatement |
prepareCall |
Создаёт объект CallableStatement для вызова хранимых процедур базы данных. |
CallableStatement |
prepareCall |
Создаёт объект CallableStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. |
CallableStatement |
prepareCall |
Создаёт объект CallableStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. |
PreparedStatement |
prepareStatement |
Создаёт объект PreparedStatement для отправки параметризованных SQL-запросов в базу данных. |
PreparedStatement |
prepareStatement |
Создаёт стандартный объект PreparedStatement, который имеет возможность извлечения автоматически сгенерированных ключей. |
PreparedStatement |
prepareStatement |
Создаёт стандартный объект PreparedStatement, способный вернуть автоматически сгенерированные ключи, обозначенные заданным массивом. |
PreparedStatement |
prepareStatement |
Создаёт объект PreparedStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. |
PreparedStatement |
prepareStatement |
Создаёт объект PreparedStatement, который будет генерировать объекты ResultSet с заданным типом, конкурентностью и удерживаемостью. |
PreparedStatement |
prepareStatement |
Создаёт стандартный объект PreparedStatement, способный вернуть автоматически сгенерированные ключи, обозначенные заданным массивом. |
void |
releaseSavepoint |
Удаляет указанные объекты Savepoint и последующие объекты Savepoint из текущей транзакции. |
void |
rollback() |
Отменяет все изменения, внесённые в текущей транзакции, и освобождает все блокировки базы данных, в настоящее время удерживаемые этим объектом Connection. |
void |
rollback |
Отменяет все изменения, внесённые после того, как был установлен данный объект Savepoint. |
void |
setAutoCommit |
Устанавливает режим автоматического подтверждения этого соединения в заданное состояние. |
void |
setCatalog |
Устанавливает заданное имя каталога для выбора подпространства базы данных этого объекта Connection для работы. |
void |
setClientInfo |
Устанавливает значение свойства клиентской информации, указанного по имени, в значение, указанное значением. |
void |
setClientInfo |
Устанавливает значения свойств клиентской информации соединения. |
void |
setHoldability |
Изменяет стандартную удерживаемость объектов ResultSet , созданных с использованием этого объекта Connection , на заданную удерживаемость. |
void |
setNetworkTimeout |
Устанавливает максимальный период ожидания базы данных для ответа на любой запрос для этого соединения или объектов, созданных из Connection. |
void |
setReadOnly |
Переводит это соединение в режим только для чтения как подсказка драйверу для активации оптимизаций базы данных. |
Savepoint |
setSavepoint() |
Создаёт безымянный контрольный пункт в текущей транзакции и возвращает новый объект Savepoint, который его представляет. |
Savepoint |
setSavepoint |
Создаёт контрольный пункт с заданным именем в текущей транзакции и возвращает новый объект Savepoint, который его представляет. |
void |
setSchema |
Устанавливает заданное имя схемы для доступа. |
default void |
setShardingKey |
Устанавливает shardingKey для использования с этим соединением |
default void |
setShardingKey |
Указывает shardingKey и superShardingKey для использования с этим подключением |
default boolean |
setShardingKeyIfValid |
Устанавливает и проверяет ключ фрагментации для этого подключения. |
default boolean |
setShardingKeyIfValid |
Устанавливает и проверяет ключи фрагментации для этого подключения. |
void |
setTransactionIsolation |
Попытка изменить уровень изоляции транзакций для данного объекта Connection на указанный. |
void |
setTypeMap |
Устанавливает данный объект TypeMap в качестве карты типов для данного объекта Connection. |
Методы, объявленные в интерфейсе java.sql.Wrapper
isWrapperFor, unwrap
Подробное описание полей
TRANSACTION_NONE
static final int TRANSACTION_NONE
- См. также:
TRANSACTION_READ_UNCOMMITTED
static final int TRANSACTION_READ_UNCOMMITTED
- См. также:
TRANSACTION_READ_COMMITTED
static final int TRANSACTION_READ_COMMITTED
- См. также:
TRANSACTION_REPEATABLE_READ
static final int TRANSACTION_REPEATABLE_READ
- См. также:
TRANSACTION_SERIALIZABLE
static final int TRANSACTION_SERIALIZABLE
TRANSACTION_REPEATABLE_READ и дополнительно запрещает ситуацию, когда одна транзакция считывает все строки, удовлетворяющие условию WHERE, вторая транзакция вставляет строку, удовлетворяющую этому WHERE условию, и первая транзакция повторно считывает по тому же условию, получая дополнительную “призрачную” строку при повторном чтении.- См. также:
Подробное описание методов
createStatement
Statement createStatement() throws SQLException
Statement для отправки SQL-запросов в базу данных. SQL-запросы без параметров обычно выполняются с помощью объектов Statement. Если один и тот же SQL-запрос выполняется многократно, может быть эффективнее использовать объект PreparedStatement. Результаты, созданные с помощью возвращённого объекта Statement, по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень конкурентности CONCUR_READ_ONLY. Удерживаемость созданных наборов результатов можно определить, вызвав getHoldability().
- Возвращает:
- новый стандартный объект
Statement - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
prepareStatement
PreparedStatement prepareStatement(String sql) throws SQLException
PreparedStatement для отправки параметризованных SQL-запросов в базу данных. SQL-запрос с параметрами IN или без них может быть предварительно скомпилирован и сохранён в объекте PreparedStatement . Затем этот объект можно использовать для эффективного многократного выполнения этого запроса.
Примечание: Этот метод оптимизирован для обработки параметризованных SQL-запросов, которые извлекают выгоду из предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может быть отправлен в базу данных только при выполнении объекта PreparedStatement. Это не имеет непосредственного влияния на пользователей, однако влияет на то, какие методы генерируют определённые объекты SQLException.
Наборы результатов, созданные с помощью возвращённого объекта PreparedStatement, по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень конкурентности CONCUR_READ_ONLY. Удерживаемость созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql- SQL-запрос, который может содержать один или несколько заполнительных параметров IN “?” - Возвращает:
- новый стандартный объект
PreparedStatement, содержащий предварительно скомпилированный SQL-запрос - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
prepareCall
CallableStatement prepareCall(String sql) throws SQLException
CallableStatement для вызова хранимых процедур базы данных. Объект CallableStatement предоставляет методы для настройки параметров IN и OUT и методы для выполнения вызова хранимой процедуры. Примечание: Этот метод оптимизирован для обработки запросов вызова хранимых процедур. Некоторые драйверы могут отправить запрос вызова в базу данных при выполнении метода prepareCall; другие могут подождать до выполнения объекта CallableStatement. Это не оказывает прямого влияния на пользователей, но влияет на то, какие методы генерируют определённые объекты SQLException.
Наборы результатов, созданные с помощью возвращённого объекта CallableStatement, по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень конкурентности CONCUR_READ_ONLY. Удерживаемость созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql- SQL-запрос, который может содержать один или несколько знаков параметра “?”. Обычно этот запрос указывается с помощью синтаксиса JDBC для вызовов. - Возвращает:
- новый стандартный объект
CallableStatement, содержащий предварительно скомпилированный SQL-запрос - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
nativeSQL
String nativeSQL(String sql) throws SQLException
- Параметры:
-
sql- SQL-запрос, который может содержать один или несколько знаков параметра “?” - Возвращает:
- родной вид этого запроса
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
setAutoCommit
void setAutoCommit(boolean autoCommit) throws SQLException
commit или метода rollback. По умолчанию новые соединения находятся в режиме автоматического подтверждения. Подтверждение происходит при завершении запроса. Время завершения запроса зависит от типа SQL-запроса:
- Для DML-запросов, таких как Insert, Update или Delete, и DDL-запросов, запрос завершается, как только он завершит выполнение.
- Для Select-запросов запрос завершается, когда связанный набор результатов закрывается.
- Для объектов
CallableStatementили для запросов, возвращающих несколько результатов, запрос завершается, когда все связанные наборы результатов были закрыты, а все счётчики обновлений и параметры вывода были получены.
ПРИМЕЧАНИЕ: Если этот метод вызывается во время транзакции и режим автоматического подтверждения изменяется, транзакция подтверждается. Если setAutoCommit вызывается и режим автоматического подтверждения не изменяется, вызов является бесполезным.
- Параметры:
-
autoCommit-trueдля включения режима автоматического подтверждения;falseдля его отключения - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, setAutoCommit(true) вызван при участии в распределённой транзакции или этот метод вызван для закрытого соединения - См. также:
getAutoCommit
boolean getAutoCommit() throws SQLException
Connection.- Возвращает:
- текущее состояние режима автоматического подтверждения объекта
Connection - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
commit
void commit() throws SQLException
Connection объектом. Этот метод следует использовать только при отключенном режиме автоматического подтверждения.- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределенной транзакции, если этот метод вызван для закрытого соединения или этотConnectionобъект находится в режиме автоматического подтверждения - See Also:
rollback
void rollback() throws SQLException
Connection объектом. Этот метод следует использовать только при отключенном режиме автоматического подтверждения.- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределенной транзакции, этот метод вызван для закрытого соединения или этотConnectionобъект находится в режиме автоматического подтверждения - See Also:
close
void close() throws SQLException
Connection объекта, вместо ожидания их автоматического освобождения. Вызов метода close для Connection объекта, который уже закрыт, является пустой операцией.
Настоятельно рекомендуется, чтобы приложение явно подтверждало или отменяло активную транзакцию перед вызовом метода close. Если метод close вызывается, и существует активная транзакция, результаты определяются реализацией.
- Specified by:
-
closeв интерфейсеAutoCloseable - Throws:
-
SQLException- если произошла ошибка доступа к базе данных
isClosed
boolean isClosed() throws SQLException
Connection объект. Соединение закрыто, если для него был вызван метод close или произошли определенные фатальные ошибки. Этот метод гарантированно вернет true только при вызове после вызова метода Connection.close. Этот метод, как правило, не может использоваться для определения того, является ли соединение с базой данных допустимым или недопустимым. Типичный клиент может определить, что соединение недействительно, перехватив любые исключения, которые могут быть выброшены при попытке выполнения операции.
- Returns:
-
trueесли этотConnectionобъект закрыт;falseесли он все еще открыт - Throws:
-
SQLException- если произошла ошибка доступа к базе данных
getMetaData
DatabaseMetaData getMetaData() throws SQLException
DatabaseMetaData, содержащий метаданные о базе данных, к которой это Connection объект представляет собой подключение. Метаданные включают информацию о таблицах базы данных, поддерживаемом синтаксисе SQL, хранимых процедурах, возможностях этого подключения и т.д.- Returns:
- объект
DatabaseMetaDataдля этогоConnectionобъекта - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
setReadOnly
void setReadOnly(boolean readOnly) throws SQLException
Примечание: Этот метод нельзя вызывать во время транзакции.
- Parameters:
-
readOnly-trueвключает режим только для чтения;falseотключает его - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или этот метод вызван во время транзакции
isReadOnly
boolean isReadOnly() throws SQLException
Connection объект в режиме только для чтения.- Returns:
-
trueесли этотConnectionобъект предназначен только для чтения;falseв противном случае - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
setCatalog
void setCatalog(String catalog) throws SQLException
Connection объекта для работы. Если драйвер не поддерживает каталоги, он проигнорирует этот запрос.
Вызов setCatalog не влияет на ранее созданные или подготовленные Statement объекты. Реализация определяет, происходит ли операция подготовки DBMS немедленно при вызове метода Connection или prepareCall. Для максимальной переносимости setCatalog должен вызываться до создания или подготовки Statement.
- Parameters:
-
catalog- имя каталога (подпространства в базе данных этогоConnectionобъекта), в котором необходимо работать - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - See Also:
getCatalog
String getCatalog() throws SQLException
Connection объекта.- Returns:
- текущее имя каталога или
nullесли его нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - See Also:
setTransactionIsolation
void setTransactionIsolation(int level) throws SQLException
Connection объекта на заданный. Константы, определенные в интерфейсе Connection, являются возможными уровнями изоляции транзакций. Примечание: Если этот метод вызывается во время транзакции, результат определяется реализацией.
- Parameters:
-
level- одна из следующих константConnection:Connection.TRANSACTION_READ_UNCOMMITTED,Connection.TRANSACTION_READ_COMMITTED,Connection.TRANSACTION_REPEATABLE_READ, илиConnection.TRANSACTION_SERIALIZABLE. (Обратите внимание, чтоConnection.TRANSACTION_NONEнельзя использовать, так как она указывает, что транзакции не поддерживаются.) - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или заданный параметр не является одной из константConnection - See Also:
getTransactionIsolation
int getTransactionIsolation() throws SQLException
Connection объекта.- Returns:
- текущий уровень изоляции транзакций, который будет одной из следующих констант:
Connection.TRANSACTION_READ_UNCOMMITTED,Connection.TRANSACTION_READ_COMMITTED,Connection.TRANSACTION_REPEATABLE_READ,Connection.TRANSACTION_SERIALIZABLE, илиConnection.TRANSACTION_NONE. - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - See Also:
getWarnings
SQLWarning getWarnings() throws SQLException
Connection объекта. Если предупреждений несколько, последующие предупреждения будут связаны с первым и могут быть получены путем вызова метода SQLWarning.getNextWarning на предупреждении, полученном ранее. Этот метод нельзя вызывать для закрытого соединения; при этом будет выброшено SQLException.
Примечание: Последующие предупреждения будут привязаны к этому SQLWarning.
- Returns:
- первый объект
SQLWarningилиnullесли их нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - See Also:
clearWarnings
void clearWarnings() throws SQLException
Connection объекта. После вызова этого метода метод getWarnings возвращает null до тех пор, пока новое предупреждение не будет сообщено для этого Connection объекта.- Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
createStatement
Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
Statement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. Этот метод аналогичен методу createStatement выше, но он позволяет переопределить тип и конкурентность набора результатов по умолчанию. Уровень доступности созданных наборов результатов можно определить, вызвав getHoldability().- Parameters:
-
resultSetType- тип набора результатов; один изResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, илиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency- тип конкурентности; один изResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE - Returns:
- новый объект
Statement, который будет генерировать объектыResultSetс заданным типом и конкурентностью - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданные параметры не являютсяResultSetконстантами, указывающими тип и конкурентность -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов и конкурентности набора результатов. - Since:
- 1.2
prepareStatement
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
PreparedStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. Этот метод аналогичен методу prepareStatement выше, но он позволяет переопределить тип и конкурентность набора результатов по умолчанию. Уровень доступности созданных наборов результатов можно определить, вызвав getHoldability().- Parameters:
-
sql- объектString, представляющий SQL-запрос, который будет отправлен в базу данных; может содержать один или несколько параметров '?' IN -
resultSetType- тип набора результатов; один изResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, илиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency- тип конкурентности; один изResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE - Returns:
- новый объект PreparedStatement, содержащий предварительно скомпилированный SQL-запрос, который будет генерировать объекты
ResultSetс заданным типом и конкурентностью - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданные параметры не являютсяResultSetконстантами, указывающими тип и конкурентность -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов и конкурентности набора результатов. - Since:
- 1.2
prepareCall
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
CallableStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. Этот метод аналогичен методу prepareCall выше, но он позволяет переопределить тип и конкурентность набора результатов по умолчанию. Уровень доступности созданных наборов результатов можно определить, вызвав getHoldability().- Parameters:
-
sql- объектString, представляющий SQL-запрос, который будет отправлен в базу данных; может содержать один или несколько параметров '?' -
resultSetType- тип набора результатов; один изResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, илиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency- тип конкурентности; один изResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE - Returns:
- новый объект
CallableStatement, содержащий предварительно скомпилированный SQL-запрос, который будет генерировать объектыResultSetс заданным типом и конкурентностью - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданные параметры не являютсяResultSetконстантами, указывающими тип и конкурентность -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов и конкурентности набора результатов. - Since:
- 1.2
getTypeMap
Map<String,Class<?>> getTypeMap() throws SQLException
Map, связанный с этим объектом Connection. Если приложение не добавило запись, возвращаемая карта типов будет пустой. Вы должны вызвать setTypeMap после внесения изменений в объект Map, возвращённый из getTypeMap, так как драйвер JDBC может создать внутреннюю копию объекта Map, переданного в setTypeMap:
Map<String,Class<?>> myMap = con.getTypeMap();
myMap.put("mySchemaName.ATHLETES", Athletes.class);
con.setTypeMap(myMap);
- Returns:
- объект
java.util.Map, связанный с этим объектомConnection - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Since:
- 1.2
- See Also:
setTypeMap
void setTypeMap(Map<String,Class<?>> map) throws SQLException
TypeMap в качестве карты типов для этого объекта Connection. Карта типов будет использоваться для пользовательского сопоставления SQL-структурированных типов и типов DISTINCT. Вы должны установить значения для TypeMap до вызова setMap, так как драйвер JDBC может создать внутреннюю копию TypeMap:
Map myMap<String,Class<?>> = new HashMap<String,Class<?>>();
myMap.put("mySchemaName.ATHLETES", Athletes.class);
con.setTypeMap(myMap);
- Parameters:
-
map- объектjava.util.Mapдля установки в качестве замены стандартной карты типов этого объектаConnection - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданный параметр не является объектомjava.util.Map -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Since:
- 1.2
- See Also:
setHoldability
void setHoldability(int holdability) throws SQLException
ResultSet по умолчанию, созданных с помощью этого объекта Connection, на указанный уровень доступности. Уровень доступности объектов ResultSet по умолчанию можно определить, вызвав DatabaseMetaData.getResultSetHoldability().- Parameters:
-
holdability- константа уровня доступностиResultSet; один изResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданный параметр не являетсяResultSetконстантой, указывающей уровень доступности -
SQLFeatureNotSupportedException- если указанный уровень доступности не поддерживается - Since:
- 1.4
- See Also:
getHoldability
int getHoldability() throws SQLException
ResultSet , созданных с помощью этого объекта Connection.- Returns:
- уровень доступности, один из
ResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении - Since:
- 1.4
- See Also:
setSavepoint
Savepoint setSavepoint() throws SQLException
Savepoint, который её представляет. если setSavepoint вызван вне активной транзакции, транзакция будет начата в этой новой точке сохранения.
- Returns:
- новый объект
Savepoint - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции, этот метод вызван на закрытом соединении или этот объектConnectionв данный момент находится в режиме автоматического подтверждения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Since:
- 1.4
- See Also:
setSavepoint
Savepoint setSavepoint(String name) throws SQLException
Savepoint, который её представляет. если setSavepoint вызван вне активной транзакции, транзакция будет начата в этой новой точке сохранения.
- Parameters:
-
name- строка, содержащая имя точки сохранения - Returns:
- новый объект
Savepoint - Throws:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции, этот метод вызван на закрытом соединении или этот объектConnectionв данный момент находится в режиме автоматического подтверждения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Since:
- 1.4
- See Also:
откат
void rollback(Savepoint savepoint) throws SQLException
Savepoint. Этот метод следует использовать только при отключенном автоматическом подтверждении.
- Параметры:
-
savepoint- объектSavepoint, к которому необходимо откатить изменения - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции, этот метод вызван на закрытом соединении, объектSavepointбольше недействителен или этот объектConnectionв настоящее время находится в режиме автоматического подтверждения -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С:
- 1.4
- См. также:
releaseSavepoint
void releaseSavepoint(Savepoint savepoint) throws SQLException
Savepoint и последующие объекты Savepoint из текущей транзакции. Любая ссылка на сохранение точки после её удаления приведёт к сбрасыванию SQLException. - Параметры:
-
savepoint- объектSavepointдля удаления - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или указанный объектSavepointне является допустимой точкой сохранения в текущей транзакции -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С:
- 1.4
createStatement
Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
Statement, который будет генерировать объекты ResultSet с заданным типом, конкурентностью и возможностью приостановки. Этот метод эквивалентен методу createStatement выше, но позволяет переопределить тип, конкурентность и возможность приостановки набора результатов по умолчанию.- Параметры:
-
resultSetType- одно из следующих значенийResultSet:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, илиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency- одно из следующих значенийResultSet:ResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE -
resultSetHoldability- одно из следующих значенийResultSet:ResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Возвращает:
- новый объект
Statement, который будет генерировать объектыResultSetс заданным типом, конкурентностью и возможностью приостановки - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданные параметры не являютсяResultSetконстантами, указывающими тип, конкурентность и возможность приостановки -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов, возможности приостановки набора результатов и конкурентности набора результатов. - С:
- 1.4
- См. также:
prepareStatement
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
PreparedStatement, который будет генерировать объекты ResultSet с заданным типом, конкурентностью и возможностью приостановки. Этот метод аналогичен методу prepareStatement выше, но позволяет переопределить тип, конкурентность и возможность приостановки набора результатов по умолчанию.
- Параметры:
-
sql- объектString, представляющий SQL-запрос, который будет отправлен в базу данных; может содержать один или несколько параметров '?'; -
resultSetType- одно из следующих значенийResultSet:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, илиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency- одно из следующих значенийResultSet:ResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE -
resultSetHoldability- одно из следующих значенийResultSet:ResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Возвращает:
- новый объект
PreparedStatement, содержащий предварительно скомпилированный SQL-запрос, который будет генерировать объектыResultSetс указанным типом, конкурентностью и возможностью приостановки - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданные параметры не являютсяResultSetконстантами, указывающими тип, конкурентность и возможность приостановки -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов, возможности приостановки набора результатов и конкурентности набора результатов. - С:
- 1.4
- См. также:
prepareCall
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
CallableStatement, который будет генерировать объекты ResultSet с указанным типом и конкурентностью. Этот метод аналогичен методу prepareCall выше, но позволяет переопределить тип набора результатов, конкурентность набора результатов и возможность приостановки по умолчанию.- Параметры:
-
sql- объектString, представляющий SQL-запрос, который будет отправлен в базу данных; может содержать один или более параметров '?'; -
resultSetType- одно из следующих значенийResultSet:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, илиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency- одно из следующих значенийResultSet:ResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE -
resultSetHoldability- одно из следующих значенийResultSet:ResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Возвращает:
- новый объект
CallableStatement, содержащий предварительно скомпилированный SQL-запрос, который будет генерировать объектыResultSetс указанным типом, конкурентностью и возможностью приостановки - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданные параметры не являютсяResultSetконстантами, указывающими тип, конкурентность и возможность приостановки -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов, возможности приостановки набора результатов и конкурентности набора результатов. - С:
- 1.4
- См. также:
prepareStatement
PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
PreparedStatement, имеющий возможность извлечения автоматически сгенерированных ключей. Заданная константа указывает драйверу, должен ли он сделать автоматически сгенерированные ключи доступными для извлечения. Этот параметр игнорируется, если SQL-запрос не является INSERT запросом или SQL-запросом, способным возвращать автоматически сгенерированные ключи (список таких запросов зависит от поставщика). Примечание: Этот метод оптимизирован для обработки параметрических SQL-запросов, которые извлекают выгоду из предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может быть отправлен в базу данных только при выполнении объекта PreparedStatement. Это не оказывает непосредственного влияния на пользователей, однако влияет на то, какие методы выбрасывают определённые SQLException.
Наборы результатов, созданные с помощью возвращаемого объекта PreparedStatement, по умолчанию будут иметь тип TYPE_FORWARD_ONLY и уровень конкурентности CONCUR_READ_ONLY. Возможность приостановки созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql- SQL-запрос, который может содержать один или несколько заполнительных параметров '?'; -
autoGeneratedKeys- флаг, указывающий, должны ли возвращаться автоматически сгенерированные ключи; одно изStatement.RETURN_GENERATED_KEYSилиStatement.NO_GENERATED_KEYS - Возвращает:
- новый объект
PreparedStatement, содержащий предварительно скомпилированный SQL-запрос, который будет иметь возможность возвращать автоматически сгенерированные ключи - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданный параметр не являетсяStatementконстантой, указывающей, должны ли возвращаться автоматически сгенерированные ключи -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS - С:
- 1.4
prepareStatement
PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
PreparedStatement , способный возвращать сгенерированные автоматически ключи, указанные заданным массивом. Этот массив содержит индексы столбцов в целевой таблице, которые содержат сгенерированные автоматически ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-запрос не является INSERT запросом или SQL-запросом, способным возвращать сгенерированные автоматически ключи (список таких запросов зависит от поставщика). SQL-запрос с параметрами IN или без них может быть предварительно скомпилирован и сохранён в объекте PreparedStatement. Этот объект затем может быть использован для эффективного многократного выполнения этого запроса.
Примечание: Этот метод оптимизирован для работы с параметрическими SQL-запросами, которые выигрывают от предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может не быть отправлен в базу данных до выполнения объекта PreparedStatement. Это не оказывает прямого влияния на пользователей; однако, это влияет на то, какие методы выбрасывают определённые исключения SQLException.
Результаты запросов, созданные с помощью возвращённого объекта PreparedStatement по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень одновременности CONCUR_READ_ONLY. Уровень удержания созданных наборов результатов можно определить, вызвав getHoldability().
- Parameters:
-
sql- SQL-запрос, который может содержать один или несколько заполнительных параметров '?' IN -
columnIndexes- массив индексов столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки или строк - Returns:
- новый объект
PreparedStatement, содержащий предварительно скомпилированный запрос, способный возвращать сгенерированные автоматически ключи, указанные заданным массивом индексов столбцов - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - Since:
- 1.4
prepareStatement
PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
PreparedStatement , способный возвращать сгенерированные автоматически ключи, указанные заданным массивом. Этот массив содержит имена столбцов в целевой таблице, которые содержат сгенерированные автоматически ключи, которые должны быть возвращены. Драйвер проигнорирует массив, если SQL-запрос не является INSERT запросом или SQL-запросом, способным возвращать сгенерированные автоматически ключи (список таких запросов зависит от поставщика). SQL-запрос с параметрами IN или без них может быть предварительно скомпилирован и сохранён в объекте PreparedStatement. Этот объект затем может быть использован для эффективного многократного выполнения этого запроса.
Примечание: Этот метод оптимизирован для работы с параметрическими SQL-запросами, которые выигрывают от предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может не быть отправлен в базу данных до выполнения объекта PreparedStatement. Это не оказывает прямого влияния на пользователей; однако, это влияет на то, какие методы выбрасывают определённые исключения SQLException.
Результаты запросов, созданные с помощью возвращённого объекта PreparedStatement по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень одновременности CONCUR_READ_ONLY. Уровень удержания созданных наборов результатов можно определить, вызвав getHoldability().
- Parameters:
-
sql- SQL-запрос, который может содержать один или несколько заполнительных параметров '?' IN -
columnNames- массив имён столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки или строк - Returns:
- новый объект
PreparedStatement, содержащий предварительно скомпилированный запрос, способный возвращать сгенерированные автоматически ключи, указанные заданным массивом имён столбцов - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - Since:
- 1.4
createClob
Clob createClob() throws SQLException
Clob. Возвращаемый объект изначально не содержит данных. Методы setAsciiStream, setCharacterStream и setString интерфейса Clob могут быть использованы для добавления данных в Clob.- Returns:
- Объект, реализующий интерфейс
Clob - Throws:
-
SQLException- если объект, реализующий интерфейсClobне может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных. -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот тип данных - Since:
- 1.6
createBlob
Blob createBlob() throws SQLException
Blob. Возвращаемый объект изначально не содержит данных. Методы setBinaryStream и setBytes интерфейса Blob могут быть использованы для добавления данных в Blob.- Returns:
- Объект, реализующий интерфейс
Blob - Throws:
-
SQLException- если объект, реализующий интерфейсBlobне может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных. -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот тип данных - Since:
- 1.6
createNClob
NClob createNClob() throws SQLException
NClob. Возвращаемый объект изначально не содержит данных. Методы setAsciiStream, setCharacterStream и setString интерфейса NClob могут быть использованы для добавления данных в NClob.- Returns:
- Объект, реализующий интерфейс
NClob - Throws:
-
SQLException- если объект, реализующий интерфейсNClobне может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных. -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот тип данных - Since:
- 1.6
createSQLXML
SQLXML createSQLXML() throws SQLException
SQLXML. Возвращаемый объект изначально не содержит данных. Метод createXmlStreamWriter и setString интерфейса SQLXML могут быть использованы для добавления данных в объект SQLXML.- Returns:
- Объект, реализующий интерфейс
SQLXML - Throws:
-
SQLException- если объект, реализующий интерфейсSQLXMLне может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных. -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот тип данных - Since:
- 1.6
isValid
boolean isValid(int timeout) throws SQLException
Запрос, отправленный драйвером для проверки соединения, выполняется в контексте текущей транзакции.
- Parameters:
-
timeout- Время в секундах, чтобы подождать выполнения операции базы данных для проверки соединения. Если период ожидания истечёт до завершения операции, этот метод возвращает false. Значение 0 указывает, что таймаут для операции базы данных не применяется. - Returns:
- true, если соединение валидно, false в противном случае
- Throws:
-
SQLException- если значение, предоставленное дляtimeout, меньше 0 - Since:
- 1.6
- See Also:
setClientInfo
void setClientInfo(String name, String value) throws SQLClientInfoException
Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties для определения свойств клиентской информации, поддерживаемых драйвером, и максимальной длины, которая может быть указана для каждого свойства.
Драйвер хранит указанное значение в подходящем месте в базе данных. Например, в специальном регистре, параметре сессии или столбце таблицы системы. Для повышения эффективности драйвер может отложить установку значения в базе данных до следующего момента выполнения или подготовки запроса. Помимо хранения клиентской информации в соответствующем месте в базе данных, эти методы никак не изменят поведение соединения. Указанные значения этих методов используются только для целей учета, диагностики и отладки.
Драйвер должен сгенерировать предупреждение, если имя клиентской информации, указанное, не распознаётся драйвером.
Если значение, указанное в этом методе, больше максимальной длины для свойства, драйвер может либо обрезать значение и сгенерировать предупреждение, либо сгенерировать SQLClientInfoException. Если драйвер сгенерирует SQLClientInfoException, указанное значение не было установлено в соединении.
Ниже приведены стандартные свойства клиентской информации. Драйверы не обязаны поддерживать эти свойства, однако, если драйвер поддерживает свойство клиентской информации, которое может быть описано одним из стандартных свойств, следует использовать стандартное имя свойства.
- ApplicationName - Имя приложения, в настоящее время использующего подключение
- ClientUser - Имя пользователя, от имени которого приложение, использующее подключение, выполняет работу. Это может не совпадать с именем пользователя, которое использовалось при установлении соединения.
- ClientHostname - Имя хоста компьютера, на котором работает приложение, использующее подключение.
- Parameters:
-
name- Имя свойства клиентской информации, которое нужно установить -
value- Значение, которое нужно установить для свойства клиентской информации. Если значение равно null, текущее значение указанного свойства сбрасывается. - Throws:
-
SQLClientInfoException- если сервер базы данных возвращает ошибку при установке значения клиентской информации на сервере базы данных или этот метод вызывается для закрытого соединения - Since:
- 1.6
setClientInfo
void setClientInfo(Properties properties) throws SQLClientInfoException
Properties содержит имена и значения свойств клиентской информации, которые необходимо установить. Набор свойств клиентской информации, содержащихся в списке свойств, заменяет текущий набор свойств клиентской информации в соединении. Если свойство, которое в настоящее время установлено в соединении, отсутствует в списке свойств, это свойство сбрасывается. Указание пустого списка свойств очистит все свойства в соединении. См. setClientInfo (String, String) для получения дополнительной информации. Если при установке любого из свойств клиентской информации произойдет ошибка, будет выброшено исключение SQLClientInfoException. Исключение SQLClientInfoException содержит информацию, указывающую, какие свойства клиентской информации не были установлены. Состояние клиентской информации неизвестно, поскольку некоторые базы данных не позволяют устанавливать несколько свойств клиентской информации атомарно. Для таких баз данных одно или несколько свойств могли быть установлены до возникновения ошибки.
- Parameters:
-
properties- список свойств клиентской информации, которые необходимо установить - Throws:
-
SQLClientInfoException- если сервер базы данных возвращает ошибку при установке значений clientInfo на сервере базы данных или этот метод вызывается для закрытого соединения - Since:
- 1.6
- See Also:
getClientInfo
String getClientInfo(String name) throws SQLException
Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties для определения свойств клиентской информации, поддерживаемых драйвером.
- Parameters:
-
name- Имя свойства клиентской информации для извлечения - Returns:
- Значение указанного свойства клиентской информации
- Throws:
-
SQLException- если сервер базы данных возвращает ошибку при извлечении значения клиентской информации из базы данных или этот метод вызывается для закрытого соединения - Since:
- 1.6
- See Also:
getClientInfo
Properties getClientInfo() throws SQLException
- Returns:
- Объект
Properties, содержащий имя и текущее значение каждого из поддерживаемых драйвером свойств клиентской информации. - Throws:
-
SQLException- если сервер базы данных возвращает ошибку при извлечении значений клиентской информации из базы данных или этот метод вызывается для закрытого соединения - Since:
- 1.6
createArrayOf
Array createArrayOf(String typeName, Object[] elements) throws SQLException
Примечание: Когда createArrayOf используется для создания объекта массива, который отображается на примитивный тип данных, тогда определяется реализацией, является ли объект Array массивом этого примитивного типа данных или массивом Object.
Примечание: Драйвер JDBC отвечает за отображение элементов Object массива на тип SQL JDBC по умолчанию, определенный в java.sql.Types для данного класса Object. Отображение по умолчанию указано в Приложении B спецификации JDBC. Если полученный тип JDBC не является подходящим типом для данного typeName, то определяется реализацией, будет ли выброшено исключение SQLException или драйвер поддерживает преобразование.
- Parameters:
-
typeName- имя SQL типа, к которому отображаются элементы массива. typeName - имя, специфичное для базы данных, которое может быть именем встроенного типа, пользователем типа или стандартным типом SQL, поддерживаемым этой базой данных. Это значение, возвращаемоеArray.getBaseTypeName -
elements- элементы, заполняющие возвращаемый объект - Returns:
- объект массива, элементы которого отображаются на указанный тип SQL
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, тип JDBC не подходит для typeName и преобразование не поддерживается, typeName равно null или этот метод вызывается для закрытого соединения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот тип данных - Since:
- 1.6
createStruct
Struct createStruct(String typeName, Object[] attributes) throws SQLException
- Parameters:
-
typeName- имя SQL типа структурированного типа SQL, к которому отображается этот объектStruct. typeName - имя пользовательского типа, определенного для этой базы данных. Это значение, возвращаемоеStruct.getSQLTypeName. -
attributes- атрибуты, заполняющие возвращаемый объект - Returns:
- объект Struct, отображаемый на заданный тип SQL и заполненный заданными атрибутами
- Throws:
-
SQLException- если произошла ошибка доступа к базе данных, typeName равно null или этот метод вызывается для закрытого соединения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот тип данных - Since:
- 1.6
setSchema
void setSchema(String schema) throws SQLException
Если драйвер не поддерживает схемы, он проигнорирует этот запрос.
Вызов setSchema не влияет на ранее созданные или подготовленные объекты Statement. Определяется реализацией, выполняется ли операция подготовки DBMS немедленно при вызове метода Connection prepareStatement или prepareCall. Для максимальной переносимости setSchema следует вызывать перед созданием или подготовкой Statement.
- Parameters:
-
schema- имя схемы, в которой необходимо работать - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызывается для закрытого соединения - Since:
- 1.7
- See Also:
getSchema
String getSchema() throws SQLException
Connection. - Returns:
- текущее имя схемы или
null, если его нет - Throws:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызывается для закрытого соединения - Since:
- 1.7
- See Also:
Прервать
void abort(Executor executor) throws SQLException
abort приводит к: - Отметка соединения как закрытого
- Закрытие любого физического соединения с базой данных
- Освобождение ресурсов, используемых соединением
- Гарантия того, что любая нить, которая в настоящее время обращается к соединению, либо завершит свою работу, либо бросит исключение
SQLException.
Вызов abort помечает соединение как закрытое и освобождает все ресурсы. Вызов abort для закрытого соединения — это пустая операция.
Возможно, что прерывание и освобождение ресурсов, удерживаемых соединением, может занять длительное время. Когда метод abort возвращается, соединение будет помечено как закрытое, а нить Executor, переданная в качестве параметра в метод abort, все еще может выполнять задачи по освобождению ресурсов.
Этот метод проверяет наличие объекта SQLPermission, прежде чем разрешить выполнение метода. Если объект SecurityManager существует и его метод checkPermission запрещает вызов abort, этот метод генерирует исключение java.lang.SecurityException.
- Параметры:
-
executor- РеализацияExecutor, которая будет использоватьсяabort. - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных илиexecutorнаходится в состоянииnull, -
SecurityException- если существует менеджер безопасности и его методcheckPermissionзапрещает вызовabort - С момента:
- 1.7
- См. также:
установитьТаймаутСети
void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException
Connection или объектов, созданных из Connection. Если любой запрос остается без ответа, метод ожидания вернет SQLException, а Connection или объекты, созданные из Connection, будут помечены как закрытые. Любое последующее использование объектов, за исключением методов close, isClosed или Connection.isValid, приведет к исключению SQLException. Примечание: Этот метод предназначен для решения редкой, но серьезной проблемы, когда сетевые разрывы могут привести к зависанию потоков, вызывающих вызовы JDBC в чтении сокетов, до тех пор, пока ОС TCP-TIMEOUT (обычно 10 минут) не истечет. Этот метод связан с методом abort() , который предоставляет административной нити средство освобождения таких нитей в случаях, когда соединение JDBC доступно административной нити. Метод setNetworkTimeout будет охватывать случаи, когда нет административной нити или она не имеет доступа к соединению. Этот метод имеет серьезные последствия и должен иметь достаточно высокое значение, чтобы никогда не срабатывать раньше других, более обычных таймаутов, таких как таймауты транзакций.
Реализации драйверов JDBC также могут выбрать поддержку метода setNetworkTimeout для ограничения времени ответа базы данных в средах без подключения к сети.
Драйверы могут внутренне реализовывать некоторые или все вызовы API с помощью нескольких внутренних передач драйвер-база данных, и решение о том, будет ли ограничение применяться всегда к ответу на вызов API или к любому отдельному запросу, сделанному во время вызова API, остается за реализацией драйвера.
Этот метод можно вызывать несколько раз, например, для установки ограничения для области кода JDBC и для сброса до значения по умолчанию при выходе из этой области. Вызов этого метода не оказывает влияния на уже ожидающие запросы.
Значение таймаута сети независимо от значения таймаута, указанного в setNetworkTimeout. Если таймаут запроса истекает до таймаута сети, выполнение оператора будет отменено. Если сеть по-прежнему активна, результат будет таким, что оператор и соединение по-прежнему пригодны для использования. Однако, если таймаут сети истекает до таймаута запроса или таймаут оператора не удается из-за проблем с сетью, соединение будет помечено как закрытое, все ресурсы, удерживаемые соединением, будут освобождены, и соединение, и оператор будут непригодны для использования.
Когда драйвер определит, что значение таймаута setNetworkTimeout истекло, драйвер JDBC помечает соединение как закрытое и освобождает все ресурсы, удерживаемые соединением.
Этот метод проверяет наличие объекта SQLPermission перед выполнением метода. Если объект SecurityManager существует и его метод checkPermission запрещает вызов setNetworkTimeout, этот метод генерирует исключение java.lang.SecurityException.
- Параметры:
-
executor- РеализацияExecutor, которая будет использоватьсяsetNetworkTimeout. -
milliseconds- Время в миллисекундах, которое следует ожидать для завершения операции с базой данных. Если драйвер JDBC не поддерживает миллисекунды, драйвер JDBC округлит значение до ближайшей секунды. Если период таймаута истечет до завершения операции, будет сгенерировано исключение SQLException. Значение 0 указывает, что для операций с базой данных нет таймаута. - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения,executorнаходится в состоянииnull, или значение, указанное дляseconds, меньше 0. -
SecurityException- если существует менеджер безопасности и его методcheckPermissionзапрещает вызовsetNetworkTimeout. -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С момента:
- 1.7
- См. также:
получитьТаймаутСети
int getNetworkTimeout() throws SQLException
SQLException. - Возвращает:
- текущее ограничение таймаута в миллисекундах; ноль означает, что ограничения нет
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоConnection -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С момента:
- 1.7
- См. также:
beginRequest
default void beginRequest() throws SQLException
beginRequest, endRequest, не зависит от любой другой работы с соединением, как части другого запроса, так и вне любого запроса. Запрос может включать несколько транзакций. Может быть зависимость от состояния базы данных, которое было зафиксировано, поскольку это не локально для соединения. Локальное состояние определяется как любое состояние, связанное с соединением, которое является локальным для текущего соединения, как на клиенте, так и в базе данных, которое не может быть прозрачно воспроизведено.
Вызовы beginRequest и endRequest не вложены. Несколько вызовов beginRequest без промежуточного вызова endRequest — это не ошибка. Первый вызов beginRequest отмечает начало запроса, и последующие вызовы обрабатываются как пустые операции.
Использование beginRequest и endRequest является необязательным, зависит от поставщика и должно быть в основном прозрачным. В частности, реализации могут обнаруживать условия, которые указывают на зависимость от другой работы, например, открытой транзакции. Тем не менее, рекомендуется, хотя и необязательно, что реализации генерируют SQLException при наличии активной транзакции и вызове beginRequest. Использование этих методов может повысить производительность или предоставить другие преимущества. Обратитесь к документации поставщика для получения дополнительной информации.
Рекомендуется заключать каждый блок работы в пары beginRequest, endRequest, чтобы в начале или в конце запроса не было открытой транзакции и не было зависимости от локального состояния, пересекающего границы запросов. Состояние базы данных, которое было зафиксировано, не является локальным.
- Примечание API:
- Этот метод должен использоваться менеджерами пула соединений.
Менеджер пула должен вызвать
beginRequestдля базового соединения перед возвращением соединения вызывающей стороне.Менеджеру пула не нужно вызывать
beginRequestв следующих случаях:- Пул соединений кеширует объекты
PooledConnection - Возвращает логическую ручку соединения при вызове
getConnectionприложением - Логическое
Connectionзакрывается путем вызоваConnection.closeперед возвратомPooledConnectionв кэш.
- Пул соединений кеширует объекты
- Требования к реализации:
- Реализация по умолчанию — это пустая операция.
- Исключения:
-
SQLException- если произошла ошибка - С момента:
- 9
- См. также:
endRequest
default void endRequest() throws SQLException
beginRequest и endRequest не вложены. Несколько вызовов endRequest без промежуточного вызова beginRequest не являются ошибкой. Первый вызов endRequest отмечает завершение запроса, последующие вызовы обрабатываются как команды без действия. Вызов endRequest без предварительного вызова beginRequest — команда без действия. Точное поведение этого метода зависит от поставщика. В частности, реализации могут обнаруживать условия, указывающие на зависимость от других работ, таких как открытая транзакция. Рекомендуется, хотя и не обязательно, чтобы реализации выбрасывали исключение SQLException при наличии активной транзакции и вызове endRequest.
- API Note:
- Этот метод предназначен для использования менеджерами пулов соединений.
Менеджер пула должен вызвать
endRequestдля базового соединения, когда приложение возвращает соединение обратно в пул соединений.Менеджеру пула не нужно вызывать
endRequestв следующих случаях:- Пул соединений кеширует объекты
PooledConnection - Возвращает логическую дескриптор соединения при вызове
getConnectionприложением - Логическое соединение
Connectionзакрывается вызовомConnection.closeперед возвращениемPooledConnectionв кеш.
- Пул соединений кеширует объекты
- Implementation Requirements:
- Реализация по умолчанию — команда без действия.
- Throws:
-
SQLException- если произошла ошибка - Since:
- 9
- See Also:
setShardingKeyIfValid
default boolean setShardingKeyIfValid(ShardingKey shardingKey, ShardingKey superShardingKey, int timeout) throws SQLException
null. Действительность ключа фрагментации null зависит от поставщика. Для получения дополнительной информации обратитесь к документации поставщика.- API Note:
- Этот метод проверяет, являются ли ключи фрагментации допустимыми для
Connection. Значение тайм-аута указывает, сколько времени драйвер должен ждать, чтобыConnectionподтвердил, что ключ фрагментации действителен, прежде чемsetShardingKeyIfValidвернет false. - Implementation Requirements:
- Реализация по умолчанию будет выбрасывать исключение
SQLFeatureNotSupportedException. - Parameters:
-
shardingKey- ключ фрагментации, который должен быть проверен относительно этого соединения. Ключ фрагментации может бытьnull -
superShardingKey- суперключ фрагментации, который должен быть проверен относительно этого соединения. Суперключ фрагментации может бытьnull. -
timeout- время в секундах, до которого ожидается завершение процесса проверки, в противном случае процесс проверки прерывается. Значение 0 означает, что процесс проверки не будет ограничен по времени. - Returns:
- true, если соединение валидно, ключи фрагментации валидны и установлены для этого соединения; false, если ключи фрагментации не валидны или период тайм-аута истекает до завершения операции.
- Throws:
-
SQLException- если при выполнении этой проверки произошла ошибка; значениеsuperSharedingKeyуказано безshardingKey; этот метод вызывается для закрытогоconnection; или значениеtimeoutотрицательно. -
SQLFeatureNotSupportedException- если драйвер не поддерживает фрагментацию - Since:
- 9
- See Also:
setShardingKeyIfValid
default boolean setShardingKeyIfValid(ShardingKey shardingKey, int timeout) throws SQLException
null. Действительность ключа фрагментации null зависит от поставщика. Для получения дополнительной информации обратитесь к документации поставщика.- API Note:
- Этот метод проверяет, является ли ключ фрагментации допустимым для
Connection. Значение тайм-аута указывает, сколько времени драйвер должен ждать, чтобыConnectionподтвердил, что ключ фрагментации действителен, прежде чемsetShardingKeyIfValidвернёт false. - Implementation Requirements:
- Реализация по умолчанию будет выбрасывать исключение
SQLFeatureNotSupportedException. - Parameters:
-
shardingKey- ключ фрагментации, который должен быть проверен относительно этого соединения. Ключ фрагментации может бытьnull -
timeout- время в секундах, до которого ожидается завершение процесса проверки, в противном случае процесс проверки прерывается. Значение 0 означает, что процесс проверки не будет ограничен по времени. - Returns:
- true, если соединение валидно, ключ фрагментации валиден и может быть установлен для этого соединения; false, если ключ фрагментации не валиден или период тайм-аута истекает до завершения операции.
- Throws:
-
SQLException- если при выполнении этой проверки произошла ошибка; этот метод вызывается для закрытогоconnection; или значениеtimeoutотрицательно. -
SQLFeatureNotSupportedException- если драйвер не поддерживает фрагментацию - Since:
- 9
- See Also:
setShardingKey
default void setShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey) throws SQLException
- API Note:
- Этот метод устанавливает указанные ключи фрагментации, но не требует обратного обращения к базе данных для проверки того, что ключи фрагментации валидны для
Connection. - Implementation Requirements:
- Реализация по умолчанию будет выбрасывать исключение
SQLFeatureNotSupportedException. - Parameters:
-
shardingKey- ключ фрагментации, который нужно установить для этого подключения. Ключ фрагментации может бытьnull -
superShardingKey- суперключ фрагментации, который нужно установить для этого подключения. Суперключ фрагментации может бытьnull - Throws:
-
SQLException- если при установке ключей фрагментации произошла ошибка; этот метод вызывается для закрытогоconnection; или значениеsuperSharedingKeyуказано безshardingKey -
SQLFeatureNotSupportedException- если драйвер не поддерживает фрагментацию - Since:
- 9
- See Also:
setShardingKey
default void setShardingKey(ShardingKey shardingKey) throws SQLException
- API Note:
- Этот метод устанавливает указанный ключ фрагментации, но не требует обратного обращения к базе данных для проверки того, что ключ фрагментации валиден для
Connection. - Implementation Requirements:
- Реализация по умолчанию будет выбрасывать исключение
SQLFeatureNotSupportedException. - Parameters:
-
shardingKey- ключ фрагментации, который нужно установить для этого подключения. Ключ фрагментации может бытьnull - Throws:
-
SQLException- если при установке ключа фрагментации произошла ошибка; или этот метод вызывается для закрытогоconnection -
SQLFeatureNotSupportedException- если драйвер не поддерживает фрагментацию - Since:
- 9
- See Also:
© 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/Connection.html