Интерфейс подключения
- Все суперинтерфейсы:
-
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
- См. также:
-
DriverManager.getConnection(java.lang.String, java.util.Properties),Statement,ResultSet,DatabaseMetaData
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static int | TRANSACTION_NONE | Константа, указывающая, что транзакции не поддерживаются. |
static int | TRANSACTION_READ_COMMITTED | Константа, указывающая, что грязные чтения предотвращены; невоспроизводимые чтения и дублирующие чтения могут происходить. |
static int | TRANSACTION_READ_UNCOMMITTED | Константа, указывающая, что грязные чтения, невоспроизводимые чтения и дублирующие чтения могут происходить. |
static int | TRANSACTION_REPEATABLE_READ | Константа, указывающая, что грязные чтения и невоспроизводимые чтения предотвращены; дублирующие чтения могут происходить. |
static int | TRANSACTION_SERIALIZABLE | Константа, указывающая, что грязные чтения, невоспроизводимые чтения и дублирующие чтения предотвращены. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | abort(Executor executor) | Завершает открытое соединение. |
default void | beginRequest() | Подсказка драйверу о начале запроса, независимой единицы работы, на этом соединении. |
void | clearWarnings() | Очищает все предупреждения, сообщённые для данного объекта |
void | close() | Освобождает базу данных и JDBC ресурсы этого объекта |
void | commit() | Делает все изменения, внесённые с момента предыдущей фиксации/отката, постоянными и освобождает любые блокировки базы данных, в настоящее время удерживаемые этим объектом |
Array | createArrayOf(String typeName,
Object[] elements) | Метод фабрики для создания объектов Array. |
Blob | createBlob() | Создаёт объект, реализующий интерфейс |
Clob | createClob() | Создаёт объект, реализующий интерфейс |
NClob | createNClob() | Создаёт объект, реализующий интерфейс |
SQLXML | createSQLXML() | Создаёт объект, реализующий интерфейс |
Statement | createStatement() | Создаёт объект |
Statement | createStatement(int resultSetType,
int resultSetConcurrency) | Создаёт объект |
Statement | createStatement(int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) | Создаёт объект |
Struct | createStruct(String typeName,
Object[] attributes) | Метод фабрики для создания объектов Struct. |
default void | endRequest() | Подсказывает драйверу, что запрос, независимая единица работы, завершена. |
boolean | getAutoCommit() | Возвращает текущий режим автоматического подтверждения для данного объекта |
String | getCatalog() | Возвращает текущее имя каталога данного объекта |
Properties | getClientInfo() | Возвращает список, содержащий имя и текущее значение каждого свойства client info, поддерживаемого драйвером. |
String | getClientInfo(String name) | Возвращает значение свойства client info, заданного по имени. |
int | getHoldability() | Возвращает текущую удерживаемость объектов |
DatabaseMetaData | getMetaData() | Возвращает объект |
int | getNetworkTimeout() | Возвращает количество миллисекунд, которое драйвер будет ожидать завершения запроса к базе данных. |
String | getSchema() | Возвращает текущее имя схемы данного объекта |
int | getTransactionIsolation() | Возвращает текущий уровень изоляции транзакции этого объекта |
Map<String,Class<?>> | getTypeMap() | Возвращает объект |
SQLWarning | getWarnings() | Возвращает первое предупреждение, полученное в результате вызовов на этом объекте |
boolean | isClosed() | Возвращает, был ли закрыт этот объект |
boolean | isReadOnly() | Возвращает, находится ли этот объект |
boolean | isValid(int timeout) | Возвращает true, если соединение не было закрыто и по-прежнему валидно. |
String | nativeSQL(String sql) | Преобразует заданный SQL-запрос в собственный синтаксис SQL системы. |
CallableStatement | prepareCall(String sql) | Создаёт объект |
CallableStatement | prepareCall(String sql,
int resultSetType,
int resultSetConcurrency) | Создаёт объект |
CallableStatement | prepareCall(String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) | Создаёт объект |
PreparedStatement | prepareStatement(String sql) | Создаёт объект |
PreparedStatement | prepareStatement(String sql,
int autoGeneratedKeys) | Создаёт стандартный объект |
PreparedStatement | prepareStatement(String sql,
int[] columnIndexes) | Создаёт стандартный объект |
PreparedStatement | prepareStatement(String sql,
int resultSetType,
int resultSetConcurrency) | Создаёт объект |
PreparedStatement | prepareStatement(String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) | Создаёт объект |
PreparedStatement | prepareStatement(String sql,
String[] columnNames) | Создаёт стандартный объект |
void | releaseSavepoint(Savepoint savepoint) | Удаляет указанные объекты |
void | rollback() | Отменяет все изменения, внесённые в текущей транзакции, и освобождает все блокировки базы данных, удерживаемые данным объектом |
void | rollback(Savepoint savepoint) | Отменяет все изменения, внесённые после того, как был установлен данный объект |
void | setAutoCommit(boolean autoCommit) | Устанавливает режим автоматического подтверждения данного соединения в заданное состояние. |
void | setCatalog(String catalog) | Устанавливает указанное имя каталога, чтобы выбрать подпространство базы данных данного объекта |
void | setClientInfo(String name,
String value) | Устанавливает значение свойства client info, заданного по имени, в значение, указанное value. |
void | setClientInfo(Properties properties) | Устанавливает значения свойств client info соединения. |
void | setHoldability(int holdability) | Изменяет удерживаемость по умолчанию объектов |
void | setNetworkTimeout(Executor executor,
int milliseconds) | Устанавливает максимальный период ожидания ответа базы данных для запроса или объектов, созданных от |
void | setReadOnly(boolean readOnly) | Переводит это соединение в режим только для чтения, как подсказка драйверу для включения оптимизаций базы данных. |
Savepoint | setSavepoint() | Создаёт безымянный контрольный пункт в текущей транзакции и возвращает новый объект |
Savepoint | setSavepoint(String name) | Создаёт контрольный пункт с заданным именем в текущей транзакции и возвращает новый объект |
void | setSchema(String schema) | Устанавливает указанное имя схемы для доступа. |
default void | setShardingKey(ShardingKey shardingKey) | Указывает shardingKey для использования с этим соединением Connection |
default void | setShardingKey(ShardingKey shardingKey,
ShardingKey superShardingKey) | Указывает shardingKey и superShardingKey для использования с этим соединением |
|---|---|---|
default boolean | setShardingKeyIfValid(ShardingKey shardingKey,
int timeout) | Устанавливает и проверяет ключ фрагментации для этого соединения. |
default boolean | setShardingKeyIfValid(ShardingKey shardingKey,
ShardingKey superShardingKey,
int timeout) | Устанавливает и проверяет ключи фрагментации для этого соединения. |
void | setTransactionIsolation(int level) | Попытка изменить уровень изоляции транзакций для этого объекта |
void | setTypeMap(Map<String,Class<?>> map) | Устанавливает заданный объект |
Методы, объявленные в интерфейсе 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 call. - Возвращает:
- новый объект
CallableStatementпо умолчанию, содержащий предварительно скомпилированный SQL-запрос - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных или метод вызван для закрытого соединения
nativeSQL
String nativeSQL(String sql)
throws SQLException Преобразует данный SQL-запрос в системную родную SQL-грамматику. Драйвер может преобразовать JDBC SQL-грамматику в собственную системную SQL-грамматику перед отправкой. Этот метод возвращает родную форму запроса, который драйвер отправил бы.
- Параметры:
-
sql- SQL-запрос, который может содержать один или несколько заполнительных параметров '?' - Возвращает:
- родную форму этого запроса
- Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных или метод вызван для закрытого соединения
setAutoCommit
void setAutoCommit(boolean autoCommit)
throws SQLException Устанавливает режим автоматического подтверждения соединения на заданное состояние. Если соединение находится в режиме автоматического подтверждения, все SQL-запросы будут выполняться и подтверждаться как отдельные транзакции. В противном случае SQL-запросы группируются в транзакции, которые завершаются вызовом метода commit или метода rollback. По умолчанию новые соединения находятся в режиме автоматического подтверждения.
Подтверждение происходит при завершении запроса. Время завершения запроса зависит от типа SQL-запроса:
- Для DML-запросов, таких как Insert, Update или Delete, и DDL-запросов запрос завершается как только завершается его выполнение.
- Для Select-запросов запрос завершается, когда связанный набор результатов закрыт.
- Для объектов
CallableStatementили для запросов, возвращающих несколько результатов, запрос завершается, когда все связанные наборы результатов закрыты, и все счётчики обновлений и параметры вывода были извлечены.
ПРИМЕЧАНИЕ: Если этот метод вызывается во время транзакции и режим автоматического подтверждения изменяется, транзакция подтверждается. Если вызов setAutoCommit и режим автоматического подтверждения не меняется, вызов является бездейственным.
- Параметры:
-
autoCommit-trueдля включения режима автоматического подтверждения;falseдля его отключения - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных, вызов setAutoCommit(true) вызывается во время участия в распределённой транзакции или метод вызывается для закрытого соединения - См. также:
getAutoCommit()
getAutoCommit
boolean getAutoCommit()
throws SQLException Возвращает текущий режим автоматического подтверждения для этого объекта Connection.
- Возвращает:
- текущее состояние режима автоматического подтверждения объекта
Connection - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных или метод вызван для закрытого соединения - См. также:
setAutoCommit(boolean)
commit
void commit()
throws SQLException Делает все изменения, внесённые с момента предыдущего подтверждения/отката, постоянными и освобождает все блокировки базы данных, которые в настоящее время удерживаются объектом Connection . Этот метод должен использоваться только при отключённом режиме автоматического подтверждения.
- Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызывается во время участия в распределённой транзакции, если этот метод вызывается для закрытого соединения или этот объектConnectionнаходится в режиме автоматического подтверждения - См. также:
setAutoCommit(boolean)
rollback
void rollback()
throws SQLException Отменяет все изменения, внесённые в текущей транзакции, и освобождает все блокировки базы данных, которые в настоящее время удерживаются объектом Connection . Этот метод должен использоваться только при отключённом режиме автоматического подтверждения.
- Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызывается во время участия в распределённой транзакции, этот метод вызывается для закрытого соединения или этот объектConnectionнаходится в режиме автоматического подтверждения - См. также:
setAutoCommit(boolean)
close
void close()
throws SQLException Освобождает ресурсы базы данных и JDBC объекта Connection немедленно вместо ожидания их автоматического освобождения.
Вызов метода close для объекта Connection , который уже закрыт, является бездействующим.
Настоятельно рекомендуется, чтобы приложение явно подтверждало или отменяло активную транзакцию перед вызовом метода close . Если метод close вызывается и существует активная транзакция, результаты определяются реализацией.
- Задано в:
-
closeв интерфейсеAutoCloseable - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных
isClosed
boolean isClosed()
throws SQLException Возвращает, закрыт ли этот объект Connection. Соединение закрыто, если для него вызван метод close или произошли определённые фатальные ошибки. Этот метод гарантированно возвращает true только при вызове после вызова метода Connection.close.
Этот метод, как правило, не может использоваться для определения того, является ли соединение с базой данных допустимым или недопустимым. Типичный клиент может определить, что соединение недействительно, перехватывая любые исключения, которые могут быть выброшены при попытке выполнить операцию.
- Возвращает:
-
trueесли этот объектConnectionзакрыт;falseесли он всё ещё открыт - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных
getMetaData
DatabaseMetaData getMetaData()
throws SQLException Возвращает объект DatabaseMetaData, который содержит метаданные о базе данных, к которой это соединение Connection представляет подключение. Метаданные включают информацию о таблицах базы данных, поддерживаемой ею SQL-грамматике, хранимых процедурах, возможностях этого соединения и т. д.
- Возвращает:
- объект
DatabaseMetaDataдля объектаConnection - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных или метод вызван для закрытого соединения
setReadOnly
void setReadOnly(boolean readOnly)
throws SQLException Переводит это соединение в режим только для чтения как подсказка драйверу для активации оптимизаций базы данных.
Примечание: Этот метод не может быть вызван во время транзакции.
- Параметры:
-
readOnly-trueвключает режим только для чтения;falseотключает его - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызывается для закрытого соединения или вызывается во время транзакции
isReadOnly
boolean isReadOnly()
throws SQLException Возвращает, находится ли это соединение Connection в режиме только для чтения.
- Возвращает:
-
trueесли этотConnectionобъект является только для чтения;falseв противном случае - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
setCatalog
void setCatalog(String catalog)
throws SQLException Устанавливает заданное имя каталога, чтобы выбрать подпространство базы данных этого Connection объекта для работы.
Если драйвер не поддерживает каталоги, он проигнорирует этот запрос.
Вызов setCatalog не влияет на ранее созданные или подготовленные Statement объекты. Определяется реализацией, происходит ли операция подготовки DBMS немедленно при вызове метода Connection или prepareCall. Для максимальной переносимости setCatalog следует вызывать перед созданием или подготовкой Statement.
- Параметры:
-
catalog- имя каталога (подпространства в базе данных этогоConnectionобъекта), в котором необходимо работать - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
getCatalog()
getCatalog
String getCatalog()
throws SQLException Возвращает текущее имя каталога этого Connection объекта.
- Возвращает:
- текущее имя каталога или
null, если его нет - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
setCatalog(java.lang.String)
setTransactionIsolation
void setTransactionIsolation(int level)
throws SQLException Попытка изменить уровень изоляции транзакций для этого Connection объекта на заданный. Константы, определённые в интерфейсе Connection, представляют возможные уровни изоляции транзакций.
Примечание: Если этот метод вызывается во время транзакции, результат определяется реализацией.
- Параметры:
-
level- одно из следующихConnectionконстант:Connection.TRANSACTION_READ_UNCOMMITTED,Connection.TRANSACTION_READ_COMMITTED,Connection.TRANSACTION_REPEATABLE_READ, илиConnection.TRANSACTION_SERIALIZABLE. (Обратите внимание, чтоConnection.TRANSACTION_NONEиспользовать нельзя, так как он указывает, что транзакции не поддерживаются.) - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных, метод вызван для закрытого соединения или переданный параметр не является одной изConnectionконстант - См. также:
-
DatabaseMetaData.supportsTransactionIsolationLevel(int),getTransactionIsolation()
getTransactionIsolation
int getTransactionIsolation()
throws SQLException Возвращает текущий уровень изоляции транзакций этого Connection объекта.
- Возвращает:
- текущий уровень изоляции транзакций, который будет одной из следующих констант:
Connection.TRANSACTION_READ_UNCOMMITTED,Connection.TRANSACTION_READ_COMMITTED,Connection.TRANSACTION_REPEATABLE_READ,Connection.TRANSACTION_SERIALIZABLE, илиConnection.TRANSACTION_NONE. - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
setTransactionIsolation(int)
getWarnings
SQLWarning getWarnings()
throws SQLException Возвращает первое предупреждение, полученное в результате вызовов для этого Connection объекта. Если предупреждений более одного, последующие предупреждения будут присоединены к первому, и их можно получить, вызвав метод SQLWarning.getNextWarning на предупреждении, полученном ранее.
Этот метод не может быть вызван для закрытого соединения; в противном случае будет выброшено SQLException.
Примечание: Последующие предупреждения будут присоединены к этому SQLWarning.
- Возвращает:
- первый
SQLWarningобъект илиnullесли их нет - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
SQLWarning
clearWarnings
void clearWarnings()
throws SQLException Очищает все предупреждения, полученные для этого Connection объекта. После вызова этого метода метод getWarnings возвращает null до тех пор, пока новое предупреждение не будет сообщено для этого Connection объекта.
- Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
createStatement
Statement createStatement(int resultSetType,
int resultSetConcurrency)
throws SQLException Создаёт Statement объект, который будет генерировать ResultSet объекты с указанным типом и параллельностью. Этот метод эквивалентен методу createStatement выше, но позволяет переопределить значения типа и параллельности набора результатов. Удержание созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
resultSetType- тип набора результатов; один изResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, илиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency- тип параллельности; один изResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE - Возвращает:
- новый
Statementобъект, который будет генерироватьResultSetобъекты с указанным типом и параллельностью - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных, метод вызван для закрытого соединения или заданные параметры не являютсяResultSetконстантами, указывающими тип и параллельность -
SQLFeatureNotSupportedException- если JDBC драйвер не поддерживает этот метод или метод не поддерживается для указанного типа набора результатов и параллельности набора результатов. - Since:
- 1.2
prepareStatement
PreparedStatement prepareStatement(String sql,
int resultSetType,
int resultSetConcurrency)
throws SQLException Создаёт PreparedStatement объект, который будет генерировать ResultSet объекты с указанным типом и параллельностью. Этот метод эквивалентен методу prepareStatement выше, но позволяет переопределить значения типа и параллельности набора результатов. Удержание созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
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 - Возвращает:
- новый объект PreparedStatement, содержащий предварительно скомпилированный SQL-запрос, который будет генерировать
ResultSetобъекты с указанным типом и параллельностью - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных, метод вызван для закрытого соединения или заданные параметры не являютсяResultSetконстантами, указывающими тип и параллельность -
SQLFeatureNotSupportedException- если JDBC драйвер не поддерживает этот метод или метод не поддерживается для указанного типа набора результатов и параллельности набора результатов. - Since:
- 1.2
prepareCall
CallableStatement prepareCall(String sql,
int resultSetType,
int resultSetConcurrency)
throws SQLException Создаёт CallableStatement объект, который будет генерировать ResultSet объекты с указанным типом и параллельностью. Этот метод эквивалентен методу prepareCall выше, но позволяет переопределить значения типа и параллельности набора результатов. Удержание созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql-Stringобъект, представляющий SQL-запрос, который будет отправлен в базу данных; может содержать один или более параметров '?' -
resultSetType- тип набора результатов; один изResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, илиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency- тип параллельности; один изResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE - Возвращает:
- новый
CallableStatementобъект, содержащий предварительно скомпилированный SQL-запрос, который будет генерироватьResultSetобъекты с указанным типом и параллельностью - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных, метод вызван для закрытого соединения или заданные параметры не являютсяResultSetконстантами, указывающими тип и параллельность -
SQLFeatureNotSupportedException- если JDBC драйвер не поддерживает этот метод или метод не поддерживается для указанного типа набора результатов и параллельности набора результатов. - Since:
- 1.2
getTypeMap
Map<String,Class<?>> getTypeMap()
throws SQLException Возвращает Map объект, связанный с этим Connection объектом. Если приложение не добавило записи, возвращаемая карта типов будет пустой.
После внесения изменений в Map объект, возвращаемый getTypeMap, необходимо вызвать setTypeMap, так как JDBC драйвер может создать внутреннюю копию Map объекта, переданного setTypeMap.
Map<String,Class<?>> myMap = con.getTypeMap();
myMap.put("mySchemaName.ATHLETES", Athletes.class);
con.setTypeMap(myMap);
- Возвращает:
java.util.Mapобъект, связанный с этимConnectionобъектом- Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения -
SQLFeatureNotSupportedException- если JDBC драйвер не поддерживает этот метод - Since:
- 1.2
- См. также:
setTypeMap(java.util.Map<java.lang.String, java.lang.Class<?>>)
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);
- Параметры:
-
map- объектjava.util.Map, устанавливаемый в качестве замены для стандартного отображения типов этого объектаConnection - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается на закрытом соединении или переданный параметр не является объектомjava.util.Map -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С тех пор:
- 1.2
- См. также:
getTypeMap()
setHoldability
void setHoldability(int holdability)
throws SQLException Изменяет стандартную возможность удержания объектов ResultSet, созданных с помощью этого объекта Connection, на указанную возможность удержания. Стандартную возможность удержания объектов ResultSet можно определить, вызвав DatabaseMetaData.getResultSetHoldability().
- Параметры:
-
holdability- константа возможности удержанияResultSet; одна изResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается на закрытом соединении или переданный параметр не является константойResultSet, указывающей на возможность удержания -
SQLFeatureNotSupportedException- если заданная возможность удержания не поддерживается - С тех пор:
- 1.4
- См. также:
-
getHoldability(),DatabaseMetaData.getResultSetHoldability(),ResultSet
getHoldability
int getHoldability()
throws SQLException Возвращает текущую возможность удержания объектов ResultSet, созданных с помощью этого объекта Connection.
- Возвращает:
- возможность удержания, одна из
ResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных или этот метод вызывается на закрытом соединении - С тех пор:
- 1.4
- См. также:
-
setHoldability(int),DatabaseMetaData.getResultSetHoldability(),ResultSet
setSavepoint
Savepoint setSavepoint()
throws SQLException Создаёт неопределённую точку сохранения в текущей транзакции и возвращает новый объект Savepoint, представляющий её.
если setSavepoint вызывается вне активной транзакции, транзакция будет начата в этой вновь созданной точке сохранения.
- Возвращает:
- новый объект
Savepoint - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается во время участия в распределённой транзакции, этот метод вызывается на закрытом соединении или этот объектConnectionв данный момент находится в режиме автоматического подтверждения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С тех пор:
- 1.4
- См. также:
Savepoint
setSavepoint
Savepoint setSavepoint(String name)
throws SQLException Создаёт точку сохранения с заданным именем в текущей транзакции и возвращает новый объект Savepoint, представляющий её.
если setSavepoint вызывается вне активной транзакции, транзакция будет начата в этой вновь созданной точке сохранения.
- Параметры:
-
name- строкаString, содержащая имя точки сохранения - Возвращает:
- новый объект
Savepoint - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается во время участия в распределённой транзакции, этот метод вызывается на закрытом соединении или этот объектConnectionв данный момент находится в режиме автоматического подтверждения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С тех пор:
- 1.4
- См. также:
Savepoint
rollback
void rollback(Savepoint savepoint)
throws SQLException Отменяет все изменения, внесённые после того, как был установлен указанный объект Savepoint.
Этот метод следует использовать только при отключённом автоматическом подтверждении.
- Параметры:
-
savepoint- объектSavepointдля отката - Исключения:
-
SQLException- если возникает ошибка доступа к базе данных, этот метод вызывается во время участия в распределённой транзакции, этот метод вызывается на закрытом соединении, объектSavepointбольше не действителен, или этот объектConnectionв данный момент находится в режиме автоматического подтверждения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С тех пор:
- 1.4
- См. также:
-
Savepoint,rollback()
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
- См. также:
ResultSet
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
- См. также:
ResultSet
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
- См. также:
ResultSet
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-запрос, который может содержать один или несколько заполнительных параметров '?' 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 Создаёт объект PreparedStatement по умолчанию, способный возвращать автоматически сгенерированные ключи, определённые заданным массивом. Этот массив содержит индексы столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-запрос не является запросом INSERT или запросом SQL, способным возвращать автоматически сгенерированные ключи (список таких запросов зависит от поставщика).
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 Создаёт объект PreparedStatement по умолчанию, способный возвращать автоматически сгенерированные ключи, определённые заданным массивом. Этот массив содержит имена столбцов в целевой таблице, которые содержат автоматически сгенерированные ключи, которые должны быть возвращены. Драйвер проигнорирует массив, если SQL-запрос не является запросом INSERT или запросом SQL, способным возвращать автоматически сгенерированные ключи (список таких запросов зависит от поставщика).
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 Возвращает true, если соединение не было закрыто и по-прежнему валидно. Драйвер должен отправить запрос на соединение или использовать другой механизм, который положительно подтверждает, что соединение всё ещё валидно, когда этот метод вызывается.
Запрос, отправленный драйвером для проверки соединения, должен быть выполнен в контексте текущей транзакции.
- Параметры:
-
timeout- Время в секундах ожидания операции базы данных, используемой для проверки соединения. Если период таймаута истекает до завершения операции, этот метод возвращает false. Значение 0 означает, что таймаут для операции базы данных не применяется. - Возвращает:
- true, если соединение валидно, false в противном случае
- Выбрасывает:
-
SQLException- если значение, предоставленное дляtimeout, меньше 0 - С:
- 1.6
- См. также:
DatabaseMetaData.getClientInfoProperties()
setClientInfo
void setClientInfo(String name,
String value)
throws SQLClientInfoException Устанавливает значение свойства client info, заданного именем name, в значение, заданное значением value.
Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties для определения свойств client info, поддерживаемых драйвером, и максимальной длины, которая может быть задана для каждого свойства.
Драйвер сохраняет заданное значение в подходящем месте в базе данных. Например, в специальном регистре, параметре сеанса или столбце таблицы системы. Для повышения эффективности драйвер может отложить установку значения в базе данных до следующего выполнения или подготовки оператора. Помимо хранения информации о клиенте в соответствующем месте базы данных, эти методы не изменят поведение соединения никоим образом. Значения, предоставленные этим методам, используются только для целей учета, диагностики и отладки.
Драйвер должен сгенерировать предупреждение, если имя client info, указанное в параметре, не распознается драйвером.
Если значение, указанное в этом методе, больше максимальной длины свойства, драйвер может либо обрезать значение и сгенерировать предупреждение, либо сгенерировать SQLClientInfoException. Если драйвер генерирует SQLClientInfoException, заданное значение не было установлено в соединении.
Ниже приведены стандартные свойства client info. Драйверам не требуется поддерживать эти свойства, однако, если драйвер поддерживает свойство client info, которое можно описать одним из стандартных свойств, должно использоваться стандартное имя свойства.
- ApplicationName - Имя приложения, в настоящее время использующего соединение
- ClientUser - Имя пользователя, для которого приложение, использующее соединение, выполняет работу. Это может не совпадать с именем пользователя, которое было использовано при установлении соединения.
- ClientHostname - Имя хоста компьютера, на котором выполняется приложение, использующее соединение.
- Параметры:
-
name- Имя свойства client info, которое нужно установить -
value- Значение, которому нужно установить свойство client info. Если значение равно null, текущее значение указанного свойства очищается. - Исключение:
-
SQLClientInfoException- если сервер базы данных возвращает ошибку при установке значения client info на сервере базы данных или этот метод вызван для закрытого соединения - С тех пор:
- 1.6
setClientInfo
void setClientInfo(Properties properties)
throws SQLClientInfoException Устанавливает значения свойств client info соединения. Объект Properties содержит имена и значения свойств client info, которые нужно установить. Набор свойств client info, содержащихся в списке свойств, заменяет текущий набор свойств client info в соединении. Если свойство, которое в настоящее время установлено в соединении, отсутствует в списке свойств, это свойство очищается. Указание пустого списка свойств очистит все свойства в соединении. См. setClientInfo (String, String) для получения дополнительной информации.
Если при установке любого из свойств client info произойдет ошибка, будет выброшено исключение SQLClientInfoException. Исключение SQLClientInfoException содержит информацию, указывающую, какие свойства client info не были установлены. Состояние информации о клиенте неизвестно, потому что некоторые базы данных не позволяют устанавливать несколько свойств client info атомарно. Для этих баз данных одно или несколько свойств могут быть установлены до возникновения ошибки.
- Параметры:
-
properties- список свойств client info, которые нужно установить - Исключение:
-
SQLClientInfoException- если сервер базы данных возвращает ошибку при установке значений clientInfo на сервере базы данных или этот метод вызван для закрытого соединения - С тех пор:
- 1.6
- См. также:
setClientInfo(String, String)
getClientInfo
String getClientInfo(String name)
throws SQLException Возвращает значение свойства client info, заданного именем. Этот метод может возвращать null, если указанное свойство client info не было установлено и не имеет значения по умолчанию. Этот метод также вернет null, если указанное имя свойства client info не поддерживается драйвером.
Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties для определения свойств client info, поддерживаемых драйвером.
- Параметры:
-
name- Имя свойства client info, которое нужно получить - Возвращает:
- Значение указанного свойства client info
- Исключение:
-
SQLException- если сервер базы данных возвращает ошибку при получении значения client info из базы данных или этот метод вызван для закрытого соединения - С тех пор:
- 1.6
- См. также:
DatabaseMetaData.getClientInfoProperties()
getClientInfo
Properties getClientInfo()
throws SQLException Возвращает список, содержащий имя и текущее значение каждого свойства client info, поддерживаемого драйвером. Значение свойства client info может быть null, если свойство не было установлено и не имеет значения по умолчанию.
- Возвращает:
- Объект
Properties, содержащий имя и текущее значение каждого из свойств client info, поддерживаемых драйвером. - Исключение:
-
SQLException- если сервер базы данных возвращает ошибку при получении значений client info из базы данных или этот метод вызван для закрытого соединения - С тех пор:
- 1.6
createArrayOf
Array createArrayOf(String typeName,
Object[] elements)
throws SQLException Метод-фабрика для создания объектов Array.
Примечание: Когда createArrayOf используется для создания объекта массива, отображающего примитивный тип данных, тогда определяется реализацией, является ли объект Array массивом этого примитивного типа данных или массивом Object.
Примечание: Драйвер JDBC отвечает за отображение элементов Object массива в стандартный тип JDBC SQL, определенный в java.sql.Types для данного класса Object. Стандартное отображение указано в Приложении B спецификации JDBC. Если полученный тип JDBC не является подходящим типом для данного typeName, то определяется реализацией, будет ли выброшено исключение SQLException или драйвер поддерживает полученное преобразование.
- Параметры:
-
typeName- Имя SQL типа, которому элементы массива соответствуют. typeName - имя базы данных, которое может быть именем встроенного типа, пользовательского типа или стандартного типа SQL, поддерживаемого этой базой данных. Это значение, возвращаемоеArray.getBaseTypeName -
elements- элементы, заполняющие возвращаемый объект - Возвращает:
- объект Array, элементы которого отображаются в указанный тип SQL
- Исключение:
-
SQLException- если произошла ошибка базы данных, тип JDBC не подходит для typeName и преобразование не поддерживается, typeName равно null или этот метод вызван для закрытого соединения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот тип данных - С тех пор:
- 1.6
createStruct
Struct createStruct(String typeName,
Object[] attributes)
throws SQLException Метод-фабрика для создания объектов Struct.
- Параметры:
-
typeName- Имя SQL типа SQL структурированного типа, которому этот объектStructсоответствует. typeName - имя пользовательского типа, определенного для этой базы данных. Это значение, возвращаемоеStruct.getSQLTypeName. -
attributes- атрибуты, заполняющие возвращаемый объект - Возвращает:
- объект Struct, отображаемый в указанный тип SQL и заполненный указанными атрибутами
- Исключение:
-
SQLException- если произошла ошибка базы данных, typeName равно null или этот метод вызван для закрытого соединения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот тип данных - С тех пор:
- 1.6
setSchema
void setSchema(String schema)
throws SQLException Устанавливает имя схемы для доступа.
Если драйвер не поддерживает схемы, он проигнорирует этот запрос.
Вызов setSchema не оказывает никакого влияния на ранее созданные или подготовленные объекты Statement. Определяется реализацией, происходит ли операция подготовки DBMS немедленно при вызове метода Connection prepareStatement или prepareCall. Для максимальной переносимости, setSchema должен быть вызван до создания или подготовки Statement.
- Параметры:
-
schema- имя схемы, в которой необходимо работать - Исключение:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - С тех пор:
- 1.7
- См. также:
getSchema()
getSchema
String getSchema()
throws SQLException Возвращает текущее имя схемы этого объекта Connection.
- Возвращает:
- текущее имя схемы или
null, если её нет - Исключение:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - С тех пор:
- 1.7
- См. также:
setSchema(java.lang.String)
abort
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
- См. также:
-
SecurityManager.checkPermission(java.security.Permission),Executor
setNetworkTimeout
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
- См. также:
-
SecurityManager.checkPermission(java.security.Permission),Statement.setQueryTimeout(int),getNetworkTimeout(),abort(java.util.concurrent.Executor),Executor
getNetworkTimeout
int getNetworkTimeout()
throws SQLException Возвращает количество миллисекунд, которые драйвер будет ожидать завершения запроса к базе данных. Если предел превышен, будет выброшено исключение.
- Возвращает:
- текущее ограничение таймаута в миллисекундах; ноль означает отсутствие ограничения
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод был вызван для закрытогоConnection -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С тех пор:
- 1.7
- См. также:
setNetworkTimeout(java.util.concurrent.Executor, int)
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(),PooledConnection
endRequest
default void endRequest()
throws SQLException Уведомляет драйвер о завершении запроса — независимой единицы работы. Вызовы beginRequest и endRequest не являются вложенными. Несколько вызовов endRequest без промежуточного вызова beginRequest не являются ошибкой. Первый вызов endRequest отмечает завершение запроса, а последующие вызовы обрабатываются как бесполезные операции. Если endRequest вызывается без предварительного вызова beginRequest, это бесполезная операция.
Точное поведение этого метода зависит от поставщика. В частности, реализации могут обнаруживать условия, указывающие на зависимость от другой работы, например, от открытой транзакции. Однако рекомендуется (хотя и не обязательно), чтобы реализации выбрасывали исключение SQLException, если существует активная транзакция, и вызывается метод endRequest.
- Примечание API:
- Этот метод предназначен для использования менеджерами пулов подключений.
Менеджер пула подключений должен вызвать
endRequestна базовом подключении, когда приложение возвращает подключение обратно в пул подключений.Менеджеру пула подключений нет необходимости вызывать
endRequestесли:- Пул подключений кеширует объекты
PooledConnection - Возвращает логическую ручку подключения при вызове
getConnectionприложением - Логическое
Connectionзакрывается вызовомConnection.closeперед возвращениемPooledConnectionв кеш.
- Пул подключений кеширует объекты
- Требования к реализации:
- Реализация по умолчанию — это бесполезная операция.
- Исключения:
-
SQLException- если произошла ошибка - С тех пор:
- 9
- См. также:
-
beginRequest(),PooledConnection
setShardingKeyIfValid
default boolean setShardingKeyIfValid(ShardingKey shardingKey,
ShardingKey superShardingKey,
int timeout)
throws SQLException Устанавливает и проверяет ключи фрагментации для этого подключения. Для ключа фрагментации может быть задано значение null. Валидность ключа фрагментации null зависит от поставщика. Обратитесь к документации вашего поставщика для получения дополнительной информации.
- Примечание API:
- Этот метод проверяет, являются ли ключи фрагментации допустимыми для
Connection. Значение тайм-аута указывает, сколько времени драйвер должен ждать, покаConnectionпроверит, является ли ключ фрагментации допустимым, прежде чемsetShardingKeyIfValidвернёт false. - Требования к реализации:
- Стандартная реализация выбросит
SQLFeatureNotSupportedException. - Параметры:
-
shardingKey— ключ фрагментации, который будет проверен по отношению к этому соединению. Ключ фрагментации может бытьnull -
superShardingKey— супер-ключ фрагментации, который будет проверен по отношению к этому соединению. Супер-ключ фрагментации может бытьnull. -
timeout— время в секундах, по истечении которого процесс валидации должен быть завершён, в противном случае процесс валидации будет прерван. Значение 0 указывает, что процесс валидации не будет ограничен по времени. - Возвращает:
- true, если соединение валидно, и ключи фрагментации валидны и установлены в этом соединении; false, если ключи фрагментации не валидны или период тайм-аута истекает до завершения операции.
- Выбрасывает:
-
SQLException— если при выполнении этой проверки возникает ошибка;superSharedingKeyуказан безshardingKey; этот метод вызывается для закрытогоconnection; или значениеtimeoutотрицательное. -
SQLFeatureNotSupportedException— если драйвер не поддерживает фрагментацию - С:
- 9
- См. также:
-
ShardingKey,ShardingKeyBuilder
setShardingKeyIfValid
default boolean setShardingKeyIfValid(ShardingKey shardingKey,
int timeout)
throws SQLException Устанавливает и проверяет ключ фрагментации для этого соединения. Может быть указано значение null для ключа фрагментации. Валидность ключа фрагментации null зависит от поставщика. Обратитесь к документации вашего поставщика для получения дополнительной информации.
- Примечание API:
- Этот метод проверяет, является ли ключ фрагментации допустимым для
Connection. Значение тайм-аута указывает, сколько времени драйвер должен ждать, покаConnectionпроверит, является ли ключ фрагментации допустимым, прежде чемsetShardingKeyIfValidвернёт false. - Требования к реализации:
- Стандартная реализация выбросит
SQLFeatureNotSupportedException. - Параметры:
-
shardingKey— ключ фрагментации, который будет проверен по отношению к этому соединению. Ключ фрагментации может бытьnull -
timeout— время в секундах, по истечении которого процесс валидации должен быть завершён, в противном случае процесс валидации будет прерван. Значение 0 указывает, что процесс валидации не будет ограничен по времени. - Возвращает:
- true, если соединение валидно, и ключ фрагментации допустим для установки в этом соединении; false, если ключ фрагментации не валиден или период тайм-аута истекает до завершения операции.
- Выбрасывает:
-
SQLException— если при выполнении этой проверки возникает ошибка; этот метод вызывается для закрытогоconnection; или значениеtimeoutотрицательное. -
SQLFeatureNotSupportedException— если драйвер не поддерживает фрагментацию - С:
- 9
- См. также:
-
ShardingKey,ShardingKeyBuilder
setShardingKey
default void setShardingKey(ShardingKey shardingKey,
ShardingKey superShardingKey)
throws SQLException Устанавливает ключ фрагментации и супер-ключ фрагментации для использования с этим соединением.
- Примечание API:
- Этот метод устанавливает указанные ключи фрагментации, но не требует обратного запроса к базе данных для проверки того, что ключи фрагментации валидны для
Connection. - Требования к реализации:
- Стандартная реализация выбросит
SQLFeatureNotSupportedException. - Параметры:
-
shardingKey— ключ фрагментации, который нужно установить в этом соединении. Ключ фрагментации может бытьnull -
superShardingKey— супер-ключ фрагментации, который нужно установить в этом соединении. Супер-ключ фрагментации может бытьnull - Выбрасывает:
-
SQLException— если при установке ключей фрагментации возникла ошибка; этот метод вызывается для закрытогоconnection; илиsuperSharedingKeyуказан безshardingKey -
SQLFeatureNotSupportedException— если драйвер не поддерживает фрагментацию - С:
- 9
- См. также:
-
ShardingKey,ShardingKeyBuilder
setShardingKey
default void setShardingKey(ShardingKey shardingKey)
throws SQLException Устанавливает ключ фрагментации для использования с этим соединением.
- Примечание API:
- Этот метод устанавливает указанный ключ фрагментации, но не требует обратного запроса к базе данных для проверки того, что ключ фрагментации валиден для
Connection. - Требования к реализации:
- Стандартная реализация выбросит
SQLFeatureNotSupportedException. - Параметры:
-
shardingKey— ключ фрагментации, который нужно установить в этом соединении. Ключ фрагментации может бытьnull - Выбрасывает:
-
SQLException— если при установке ключа фрагментации возникла ошибка; или этот метод вызывается для закрытогоconnection -
SQLFeatureNotSupportedException— если драйвер не поддерживает фрагментацию - С:
- 9
- См. также:
-
ShardingKey,ShardingKeyBuilder
© 1993, 2020, 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/11/docs/api/java.sql/java/sql/Connection.html