Интерфейс подключения
- Все суперинтерфейсы:
-
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);
- С:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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 |
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 или объектов, созданных из 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-структурированных типов и типов-различий. Вы должны установить значения для 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- объектStringсодержащий имя сохраняемого пункта - 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-запрос, который будет отправлен в базу данных; может содержать один или несколько параметров '?' IN -
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- SQL-запрос, который может содержать один или несколько заполнительных параметров '?' IN -
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
INSERT запросом или запросом, способным возвращать автоматически сгенерированные ключи (список таких запросов зависит от поставщика). SQL-запрос с параметрами IN или без них может быть предварительно скомпилирован и сохранён в объекте PreparedStatement. Этот объект может затем использоваться для эффективного многократного выполнения этого запроса.
Примечание: Этот метод оптимизирован для обработки параметрических SQL-запросов, которые извлекают выгоду из предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может быть отправлен в базу данных только при выполнении объекта PreparedStatement. Это не оказывает непосредственного влияния на пользователей, но влияет на то, какие методы выбрасывают определённые SQLException.
Результаты запроса, созданные с помощью возвращённого объекта PreparedStatement , по умолчанию будут иметь тип TYPE_FORWARD_ONLY и уровень одновременности CONCUR_READ_ONLY. Уровень доступности созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql- SQL-запрос, который может содержать один или несколько заполнитель параметров '?' IN -
columnIndexes- массив индексов столбцов, указывающий столбцы, которые должны быть возвращены из вставленной строки или строк - Возвращает:
- новый объект
PreparedStatement, содержащий предварительно скомпилированный запрос, способный возвращать автоматически сгенерированные ключи, указанные заданным массивом индексов столбцов - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С:
- 1.4
prepareStatement
PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
INSERT запросом или запросом, способным возвращать автоматически сгенерированные ключи (список таких запросов зависит от поставщика). SQL-запрос с параметрами IN или без них может быть предварительно скомпилирован и сохранён в объекте PreparedStatement. Этот объект может затем использоваться для эффективного многократного выполнения этого запроса.
Примечание: Этот метод оптимизирован для обработки параметрических SQL-запросов, которые извлекают выгоду из предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может быть отправлен в базу данных только при выполнении объекта PreparedStatement. Это не оказывает непосредственного влияния на пользователей, но влияет на то, какие методы выбрасывают определённые SQLException.
Результаты запроса, созданные с помощью возвращённого объекта PreparedStatement , по умолчанию будут иметь тип TYPE_FORWARD_ONLY и уровень одновременности CONCUR_READ_ONLY. Уровень доступности созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql- SQL-запрос, который может содержать один или несколько заполнитель параметров '?' IN -
columnNames- массив имён столбцов, указывающий столбцы, которые должны быть возвращены из вставленной строки или строк - Возвращает:
- новый объект
PreparedStatement, содержащий предварительно скомпилированный запрос, способный возвращать автоматически сгенерированные ключи, указанные заданным массивом имён столбцов - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С:
- 1.4
createClob
Clob createClob() throws SQLException
Clob. Возвращаемый объект изначально не содержит данных. Методы setAsciiStream, setCharacterStream и setString интерфейса Clob могут использоваться для добавления данных в Clob.- Возвращает:
- Объект, реализующий интерфейс
Clob - Исключения:
-
SQLException- если объект, реализующий интерфейсClob, не может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных. -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот тип данных - С:
- 1.6
createBlob
Blob createBlob() throws SQLException
Blob. Возвращаемый объект изначально не содержит данных. Методы setBinaryStream и setBytes интерфейса Blob могут использоваться для добавления данных в Blob.- Возвращает:
- Объект, реализующий интерфейс
Blob - Исключения:
-
SQLException- если объект, реализующий интерфейсBlob, не может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных. -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот тип данных - С:
- 1.6
createNClob
NClob createNClob() throws SQLException
NClob. Возвращаемый объект изначально не содержит данных. Методы setAsciiStream, setCharacterStream и setString интерфейса NClob могут использоваться для добавления данных в NClob.- Возвращает:
- Объект, реализующий интерфейс
NClob - Исключения:
-
SQLException- если объект, реализующий интерфейсNClob, не может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных. -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот тип данных - С:
- 1.6
createSQLXML
SQLXML createSQLXML() throws SQLException
SQLXML. Возвращаемый объект изначально не содержит данных. Метод createXmlStreamWriter и setString интерфейса SQLXML могут использоваться для добавления данных в объект SQLXML.- Возвращает:
- Объект, реализующий интерфейс
SQLXML - Исключения:
-
SQLException- если объект, реализующий интерфейсSQLXML, не может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных. -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот тип данных - С:
- 1.6
isValid
boolean isValid(int timeout) throws SQLException
Запрос, отправленный драйвером для проверки соединения, должен выполняться в контексте текущей транзакции.
- Параметры:
-
timeout- Время в секундах ожидания операции базы данных для проверки соединения. Если период ожидания истекает до завершения операции, этот метод возвращает false. Значение 0 указывает, что к операции базы данных таймаут не применяется. - Возвращает:
- true, если соединение валидно, false в противном случае
- Исключения:
-
SQLException- если значение, предоставленное дляtimeout, меньше 0 - С:
- 1.6
- См. также:
Установить информацию о клиенте
void setClientInfo(String name, String value) throws SQLClientInfoException
Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties, чтобы определить свойства информации о клиенте, поддерживаемые драйвером, и максимальную длину, которая может быть указана для каждого свойства.
Драйвер хранит указанное значение в подходящем месте в базе данных. Например, в специальном регистре, параметре сеанса или столбце таблицы системы. Для повышения эффективности драйвер может отложить установку значения в базе данных до следующего выполнения или подготовки оператора. Помимо хранения информации о клиенте в соответствующем месте в базе данных, эти методы не изменяют поведение подключения никоим образом. Предоставляемые значения используются только для целей учета, диагностики и отладки.
Драйвер должен сгенерировать предупреждение, если имя информации о клиенте, указанное, не распознается драйвером.
Если значение, указанное для этого метода, больше максимальной длины для свойства, драйвер может либо обрезать значение и сгенерировать предупреждение, либо сгенерировать SQLClientInfoException. Если драйвер сгенерирует SQLClientInfoException, указанное значение не было установлено для подключения.
Ниже приведены стандартные свойства информации о клиенте. Драйверы не обязаны поддерживать эти свойства, однако если драйвер поддерживает свойство информации о клиенте, которое можно описать одним из стандартных свойств, должно использоваться стандартное имя свойства.
- ApplicationName - Название приложения, в настоящее время использующего подключение
- ClientUser - Имя пользователя, от имени которого приложение, использующее подключение, выполняет работу. Это может не совпадать с именем пользователя, которое было использовано при установлении подключения.
- ClientHostname - Имя хоста компьютера, на котором выполняется приложение, использующее подключение.
- Параметры:
-
name- Имя свойства информации о клиенте для установки -
value- Значение для установки свойства информации о клиенте. Если значение равно null, текущее значение указанного свойства очищается. - Исключение:
-
SQLClientInfoException- если сервер базы данных возвращает ошибку при установке значения информации о клиенте на сервере базы данных или этот метод вызывается для закрытого подключения - С момента:
- 1.6
Установить информацию о клиенте
void setClientInfo(Properties properties) throws SQLClientInfoException
Properties содержит имена и значения свойств информации о клиенте, которые необходимо установить. Набор свойств информации о клиенте, содержащихся в списке свойств, заменяет текущий набор свойств информации о клиенте в подключении. Если свойство, которое в настоящее время установлено в подключении, отсутствует в списке свойств, это свойство очищается. Указание пустого списка свойств очистит все свойства в подключении. См. setClientInfo (String, String) для получения дополнительной информации.
Если при установке любого из свойств информации о клиенте произойдет ошибка, будет выброшено SQLClientInfoException. SQLClientInfoException содержит информацию, указывающую, какие свойства информации о клиенте не были установлены. Состояние информации о клиенте неизвестно, потому что некоторые базы данных не позволяют устанавливать несколько свойств информации о клиенте атомарно. Для таких баз данных одно или несколько свойств могут быть установлены до возникновения ошибки.
- Параметры:
-
properties- список свойств информации о клиенте для установки - Исключение:
-
SQLClientInfoException- если сервер базы данных возвращает ошибку при установке значений clientInfo на сервере базы данных или этот метод вызывается для закрытого подключения - С момента:
- 1.6
- См. также:
Получить информацию о клиенте
String getClientInfo(String name) throws SQLException
Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties для определения свойств информации о клиенте, поддерживаемых драйвером.
- Параметры:
-
name- Имя свойства информации о клиенте для получения - Возвращает:
- Значение указанного свойства информации о клиенте
- Исключение:
-
SQLException- если сервер базы данных возвращает ошибку при получении значения информации о клиенте из базы данных или этот метод вызывается для закрытого подключения - С момента:
- 1.6
- См. также:
Получить информацию о клиенте
Properties getClientInfo() throws SQLException
- Возвращает:
- Объект
Properties, содержащий имя и текущее значение каждого из свойств информации о клиенте, поддерживаемых драйвером. - Исключение:
-
SQLException- если сервер базы данных возвращает ошибку при получении значений информации о клиенте из базы данных или этот метод вызывается для закрытого подключения - С момента:
- 1.6
Создать массив
Array createArrayOf(String typeName, Object[] elements) throws SQLException
Примечание: Когда createArrayOf используется для создания объекта массива, который отображается на примитивный тип данных, тогда определяется реализацией, является ли объект Array массивом этого примитивного типа данных или массивом Object.
Примечание: Драйвер JDBC отвечает за отображение элементов массива Object в стандартный тип JDBC SQL, определённый в java.sql.Types для данного класса Object. Стандартное отображение указано в Приложении B спецификации JDBC. Если полученный тип JDBC не является подходящим типом для данного typeName, то определяется реализацией, будет ли выброшено SQLException или драйвер поддерживает преобразование.
- Параметры:
-
typeName- имя SQL типа, к которому отображаются элементы массива. typeName — имя, специфичное для базы данных, которое может быть именем встроенного типа, пользовательского типа или стандартного типа SQL, поддерживаемого этой базой данных. Это значение, возвращаемоеArray.getBaseTypeName. -
elements- элементы, которые заполняют возвращаемый объект - Возвращает:
- объект массива, элементы которого отображаются на указанный тип SQL
- Исключение:
-
SQLException- если произошла ошибка базы данных, тип JDBC не подходит для typeName и преобразование не поддерживается, typeName равно null или этот метод вызывается для закрытого подключения -
SQLFeatureNotSupportedException- если JDBC драйвер не поддерживает этот тип данных - С момента:
- 1.6
Создать структуру
Struct createStruct(String typeName, Object[] attributes) throws SQLException
- Параметры:
-
typeName- имя SQL типа SQL структурированного типа, к которому отображается этот объектStruct. typeName — имя пользовательского типа, определенного для этой базы данных. Это значение, возвращаемоеStruct.getSQLTypeName. -
attributes- атрибуты, которые заполняют возвращаемый объект - Возвращает:
- объект Struct, отображаемый на данный SQL тип и заполненный заданными атрибутами
- Исключение:
-
SQLException- если произошла ошибка базы данных, typeName равно null или этот метод вызывается для закрытого подключения -
SQLFeatureNotSupportedException- если JDBC драйвер не поддерживает этот тип данных - С момента:
- 1.6
Установить схему
void setSchema(String schema) throws SQLException
Если драйвер не поддерживает схемы, он проигнорирует этот запрос.
Вызов setSchema не оказывает никакого влияния на ранее созданные или подготовленные объекты Statement. Определяется реализацией, происходит ли операция подготовки DBMS немедленно при вызове метода Connection prepareStatement или prepareCall. Для максимальной переносимости setSchema следует вызывать перед созданием или подготовкой объекта Statement.
- Параметры:
-
schema- имя схемы для работы - Исключение:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызывается для закрытого подключения - С момента:
- 1.7
- См. также:
Получить схему
String getSchema() throws SQLException
Connection.- Возвращает:
- текущее имя схемы или
null, если его нет - Исключение:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызывается для закрытого подключения - С момента:
- 1.7
- См. также:
прервать
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 и сброса до значения по умолчанию при выходе из этого участка. Вызов данного метода не влияет на уже находящиеся в очереди запросы.
Таймаут Statement.setQueryTimeout() независим от таймаута, указанного в 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
- См. также:
началоЗапроса
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 отмечает завершение запроса, а последующие вызовы обрабатываются как no-op. Если endRequest вызван без предварительного вызова beginRequest, это no-op. Точное поведение этого метода зависит от поставщика. В частности, реализации могут обнаруживать условия, указывающие на зависимость от другой работы, такой как открытая транзакция. Хотя не является обязательным, рекомендуется, чтобы реализации выбрасывали SQLException, если активна транзакция, и endRequest вызывается.
- API Note:
- Этот метод предназначен для использования менеджерами пулов соединений.
Менеджер пулов должен вызвать
endRequestна базовом соединении, когда приложение возвращает соединение обратно в пул соединений.Менеджеру пула нет необходимости вызывать
endRequestесли:- Пул соединений кэширует объекты
PooledConnection - Возвращает логическую ручку соединения при вызове
getConnectionприложением - Логическое соединение
Connectionзакрывается вызовомConnection.closeперед возвращениемPooledConnectionв кэш.
- Пул соединений кэширует объекты
- Implementation Requirements:
- Реализация по умолчанию — no-op.
- 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- если при выполнении этой проверки произошла ошибка;superShardingKeyуказан без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; илиsuperShardingKeyуказан без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, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.sql/java/sql/Connection.html