Интерфейс Connection
- Все суперинтерфейсы:
AutoCloseable, Wrapper
public interface Connection extends Wrapper, AutoCloseable
Соединение (сеанс) с определённой базой данных. Операторы SQL выполняются, а результаты возвращаются в контексте соединения.
База данных объекта Connection может предоставлять сведения, описывающие её таблицы, поддерживаемый синтаксис SQL, хранимые процедуры, возможности этого соединения и так далее. Эти сведения получают с помощью метода getMetaData.
Примечание: При настройке Connection приложения JDBC должны использовать соответствующий метод Connection, например setAutoCommit или setTransactionIsolation. Если доступен метод JDBC, приложения не должны напрямую вызывать команды SQL для изменения конфигурации соединения. По умолчанию объект 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 |
Задаёт для свойства информации о клиенте, указанного по имени, значение, заданное параметром value. |
void |
setClientInfo |
Задаёт значения свойств информации о клиенте для соединения. |
void |
setHoldability |
Изменяет возможность сохранения по умолчанию для объектов ResultSet, созданных с помощью этого объекта Connection, на заданную возможность сохранения. |
void |
setNetworkTimeout |
Задаёт максимальное время, в течение которого Connection или объекты, созданные из Connection, будут ожидать ответа базы данных на любой отдельный запрос. |
void |
setReadOnly |
Переводит это соединение в режим только для чтения, подсказывая драйверу включить оптимизацию базы данных. |
Savepoint |
setSavepoint() |
Создаёт в текущей транзакции безымянную точку сохранения и возвращает новый объект Savepoint, представляющий её. |
Savepoint |
setSavepoint |
Создаёт в текущей транзакции точку сохранения с заданным именем и возвращает новый объект Savepoint, представляющий её. |
void |
setSchema |
Задаёт имя схемы для доступа. |
default void |
setShardingKey |
Указывает ключ сегментирования, который следует использовать с этим соединением |
default void |
setShardingKey |
Указывает ключ сегментирования и суперключ сегментирования, которые следует использовать с этим соединением |
default boolean |
setShardingKeyIfValid |
Задаёт и проверяет ключ сегментирования для этого соединения. |
default boolean |
setShardingKeyIfValid |
Задаёт и проверяет ключи сегментирования для этого соединения. |
void |
setTransactionIsolation |
Пытается изменить уровень изоляции транзакций этого объекта Connection на указанный. |
void |
setTypeMap |
Устанавливает заданный объект TypeMap в качестве карты типов для этого объекта Connection. |
Методы, объявленные в интерфейсе 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. Этот метод следует использовать только при отключённом режиме автоматической фиксации.- Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции, для закрытого соединения или если этот объектConnectionработает в режиме автоматической фиксации - См. также:
rollback
void rollback() throws SQLException
Connection. Этот метод следует использовать только при отключённом режиме автоматической фиксации.- Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции, для закрытого соединения или если этот объектConnectionработает в режиме автоматической фиксации - См. также:
close
void close() throws SQLException
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. Зависит от реализации, выполняется ли операция подготовки СУБД немедленно при вызове метода Connection, prepareStatement или prepareCall. Для максимальной переносимости setCatalog следует вызывать до создания или подготовки объекта Statement.
- Параметры:
-
catalog— имя каталога (подпространства базы данных этого объектаConnection), в котором будет выполняться работа - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
getCatalog
String getCatalog() throws SQLException
Connection.- Возвращает:
- текущее имя каталога или
null, если каталог отсутствует - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
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 - См. также:
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— если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
getWarnings
SQLWarning getWarnings() throws SQLException
Connection. Если предупреждений несколько, последующие предупреждения будут связаны с первым, и их можно получить, вызвав метод SQLWarning.getNextWarning для ранее полученного предупреждения. Этот метод нельзя вызывать для закрытого соединения; такой вызов приведёт к выбросу SQLException.
Примечание: Последующие предупреждения будут связаны с этим SQLWarning.
- Возвращает:
- первый объект
SQLWarningилиnull, если предупреждений нет - Выбрасывает:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
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 не поддерживает этот метод или метод не поддерживается для указанного типа набора результатов и уровня параллелизма набора результатов. - Начиная с:
- 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 не поддерживает этот метод или метод не поддерживается для указанного типа набора результатов и уровня параллелизма набора результатов. - Начиная с:
- 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 не поддерживает этот метод или метод не поддерживается для указанного типа набора результатов и уровня параллелизма набора результатов. - Начиная с:
- 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 не поддерживает этот метод - Начиная с:
- 1.2
- См. также:
setTypeMap
void setTypeMap(Map<String,Class<?>> map) throws SQLException
TypeMap в качестве карты типов для этого объекта Connection. Карта типов будет использоваться для пользовательского сопоставления структурированных и DISTINCT-типов SQL. Перед вызовом setMap необходимо задать значения для TypeMap, поскольку драйвер 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
- См. также:
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
int getHoldability() throws SQLException
ResultSet, созданных с помощью этого объекта Connection.- Возвращает:
- удерживаемость: одно из значений
ResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - Начиная с:
- 1.4
- См. также:
setSavepoint
Savepoint setSavepoint() throws SQLException
Savepoint, представляющий её. Если setSavepoint вызывается вне активной транзакции, в этой новой точке сохранения будет начата транзакция.
- Возвращает:
- новый объект
Savepoint - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции или для закрытого соединения либо если этот объектConnectionнаходится в режиме автофиксации -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод - Начиная с:
- 1.4
- См. также:
setSavepoint
Savepoint setSavepoint(String name) throws SQLException
Savepoint, представляющий её. Если setSavepoint вызывается вне активной транзакции, в этой новой точке сохранения будет начата транзакция.
- Параметры:
-
name— объектString, содержащий имя точки сохранения - Возвращает:
- новый объект
Savepoint - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции или для закрытого соединения либо если этот объектConnectionнаходится в режиме автофиксации -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод - Начиная с:
- 1.4
- См. также:
rollback
void rollback(Savepoint savepoint) throws SQLException
Savepoint. Этот метод следует использовать только при отключённой автофиксации.
- Параметры:
-
savepoint— объектSavepoint, к которому следует выполнить откат - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции или для закрытого соединения, объектSavepointбольше недействителен либо этот объектConnectionнаходится в режиме автофиксации -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод - Начиная с:
- 1.4
- См. также:
releaseSavepoint
void releaseSavepoint(Savepoint savepoint) throws SQLException
Savepoint и все последующие объекты Savepoint из текущей транзакции. Любая ссылка на точку сохранения после её удаления приведёт к выбросу исключения SQLException.- Параметры:
-
savepoint— объектSavepoint, который нужно удалить - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанный объектSavepointне является допустимой точкой сохранения в текущей транзакции -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод - Начиная с:
- 1.4
createStatement
Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
Statement, который будет формировать объекты ResultSet с указанными типом, уровнем параллелизма и удерживаемостью. Этот метод аналогичен приведённому выше методу createStatement, но позволяет переопределить тип набора результатов, уровень параллелизма и удерживаемость по умолчанию.- Параметры:
-
resultSetType— одна из следующих константResultSet:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVEилиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency— одна из следующих константResultSet:ResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE -
resultSetHoldability— одна из следующих константResultSet:ResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Возвращает:
- новый объект
Statement, который будет формировать объектыResultSetс указанными типом, уровнем параллелизма и удерживаемостью - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанные параметры не являются константамиResultSet, задающими тип, уровень параллелизма и удерживаемость -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов, удерживаемости набора результатов и уровня параллелизма набора результатов. - Начиная с:
- 1.4
- См. также:
prepareStatement
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
PreparedStatement, который будет формировать объекты ResultSet с указанными типом, уровнем параллелизма и удерживаемостью. Этот метод аналогичен приведённому выше методу prepareStatement, но позволяет переопределить тип набора результатов, уровень параллелизма и удерживаемость по умолчанию.
- Параметры:
-
sql— объектString, содержащий SQL-инструкцию для отправки в базу данных; может содержать один или несколько входных параметров «?» -
resultSetType— одна из следующих константResultSet:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVEилиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency— одна из следующих константResultSet:ResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE -
resultSetHoldability— одна из следующих константResultSet:ResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Возвращает:
- новый объект
PreparedStatement, содержащий предварительно скомпилированную SQL-инструкцию и формирующий объектыResultSetс указанными типом, уровнем параллелизма и удерживаемостью - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанные параметры не являются константамиResultSet, задающими тип, уровень параллелизма и удерживаемость -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов, удерживаемости набора результатов и уровня параллелизма набора результатов. - Начиная с:
- 1.4
- См. также:
prepareCall
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
CallableStatement, который будет формировать объекты ResultSet с указанными типом и уровнем параллелизма. Этот метод аналогичен приведённому выше методу prepareCall, но позволяет переопределить тип набора результатов, уровень параллелизма набора результатов и удерживаемость по умолчанию.- Параметры:
-
sql— объектString, содержащий SQL-инструкцию для отправки в базу данных; может содержать один или несколько параметров «?» -
resultSetType— одна из следующих константResultSet:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVEилиResultSet.TYPE_SCROLL_SENSITIVE -
resultSetConcurrency— одна из следующих константResultSet:ResultSet.CONCUR_READ_ONLYилиResultSet.CONCUR_UPDATABLE -
resultSetHoldability— одна из следующих константResultSet:ResultSet.HOLD_CURSORS_OVER_COMMITилиResultSet.CLOSE_CURSORS_AT_COMMIT - Возвращает:
- новый объект
CallableStatement, содержащий предварительно скомпилированную SQL-инструкцию и формирующий объектыResultSetс указанными типом, уровнем параллелизма и удерживаемостью - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанные параметры не являются константамиResultSet, задающими тип, уровень параллелизма и удерживаемость -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов, удерживаемости набора результатов и уровня параллелизма набора результатов. - Начиная с:
- 1.4
- См. также:
prepareStatement
PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
PreparedStatement по умолчанию, способный получать автоматически сгенерированные ключи. Указанная константа сообщает драйверу, следует ли сделать автоматически сгенерированные ключи доступными для получения. Этот параметр игнорируется, если SQL-инструкция не является инструкцией INSERT или SQL-инструкцией, способной возвращать автоматически сгенерированные ключи (перечень таких инструкций зависит от поставщика). Примечание: Этот метод оптимизирован для обработки параметризованных SQL-инструкций, для которых полезна предварительная компиляция. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит инструкцию в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае инструкция может быть отправлена в базу данных только при выполнении объекта PreparedStatement. Это напрямую не влияет на пользователей, но влияет на то, какие методы выбрасывают определённые исключения SQLException.
Наборы результатов, созданные с помощью возвращённого объекта PreparedStatement, по умолчанию будут иметь тип TYPE_FORWARD_ONLY и уровень параллелизма CONCUR_READ_ONLY. Удерживаемость созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql— SQL-инструкция, которая может содержать один или несколько заполнителей входных параметров «?» -
autoGeneratedKeys— флаг, указывающий, следует ли возвращать автоматически сгенерированные ключи; одно из значенийStatement.RETURN_GENERATED_KEYSилиStatement.NO_GENERATED_KEYS - Возвращает:
- новый объект
PreparedStatement, содержащий предварительно скомпилированную SQL-инструкцию и способный возвращать автоматически сгенерированные ключи - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанный параметр не является константойStatement, указывающей, следует ли возвращать автоматически сгенерированные ключи -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS - Начиная с:
- 1.4
prepareStatement
PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
PreparedStatement по умолчанию, способный возвращать автоматически сгенерированные ключи, указанные в данном массиве. Этот массив содержит индексы столбцов целевой таблицы, в которых находятся автоматически сгенерированные ключи, доступные для возврата. Драйвер проигнорирует массив, если SQL-инструкция не является инструкцией INSERT или SQL-инструкцией, способной возвращать автоматически сгенерированные ключи (перечень таких инструкций зависит от поставщика). SQL-инструкцию с входными параметрами или без них можно предварительно скомпилировать и сохранить в объекте PreparedStatement. Затем этот объект можно использовать для эффективного многократного выполнения инструкции.
Примечание: Этот метод оптимизирован для обработки параметризованных SQL-инструкций, для которых полезна предварительная компиляция. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит инструкцию в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае инструкция может быть отправлена в базу данных только при выполнении объекта PreparedStatement. Это напрямую не влияет на пользователей, но влияет на то, какие методы выбрасывают определённые исключения SQLException.
Наборы результатов, созданные с помощью возвращённого объекта PreparedStatement, по умолчанию будут иметь тип TYPE_FORWARD_ONLY и уровень параллелизма CONCUR_READ_ONLY. Удерживаемость созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql— SQL-инструкция, которая может содержать один или несколько заполнителей входных параметров «?» -
columnIndexes— массив индексов столбцов, указывающий столбцы, которые следует вернуть из вставленной строки или строк - Возвращает:
- новый объект
PreparedStatement, содержащий предварительно скомпилированную инструкцию и способный возвращать автоматически сгенерированные ключи, указанные в данном массиве индексов столбцов - Вызывает исключение:
-
SQLException— если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод - Начиная с:
- 1.4
prepareStatement
PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
PreparedStatement по умолчанию, способный возвращать автоматически сгенерированные ключи, указанные в данном массиве. Этот массив содержит имена столбцов целевой таблицы, в которых находятся автоматически сгенерированные ключи, доступные для возврата. Драйвер проигнорирует массив, если SQL-инструкция не является инструкцией INSERT или SQL-инструкцией, способной возвращать автоматически сгенерированные ключи (перечень таких инструкций зависит от поставщика). SQL-инструкцию с входными параметрами или без них можно предварительно скомпилировать и сохранить в объекте PreparedStatement. Затем этот объект можно использовать для эффективного многократного выполнения инструкции.
Примечание: Этот метод оптимизирован для обработки параметризованных SQL-инструкций, для которых полезна предварительная компиляция. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит инструкцию в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае инструкция может быть отправлена в базу данных только при выполнении объекта PreparedStatement. Это напрямую не влияет на пользователей, но влияет на то, какие методы выбрасывают определённые исключения SQLException.
Наборы результатов, созданные с помощью возвращённого объекта PreparedStatement, по умолчанию будут иметь тип TYPE_FORWARD_ONLY и уровень параллелизма CONCUR_READ_ONLY. Удерживаемость созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql— SQL-инструкция, которая может содержать один или несколько заполнителей входных параметров «?» -
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
- См. также:
setClientInfo
void setClientInfo(String name, String value) throws SQLClientInfoException
Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties, чтобы определить поддерживаемые драйвером свойства сведений о клиенте и максимальную длину значения для каждого свойства.
Драйвер сохраняет указанное значение в подходящем месте базы данных, например в специальном регистре, параметре сеанса или столбце системной таблицы. Для повышения эффективности драйвер может отложить сохранение значения в базе данных до следующего выполнения или подготовки инструкции. Помимо сохранения сведений о клиенте в соответствующем месте базы данных, эти методы не должны никак изменять поведение соединения. Значения, передаваемые этим методам, используются только для учёта, диагностики и отладки.
Драйвер должен выдать предупреждение, если указанное имя сведений о клиенте ему неизвестно.
Если указанное этому методу значение превышает максимально допустимую длину свойства, драйвер может усечь значение и выдать предупреждение либо выбросить исключение SQLClientInfoException. Если драйвер выбрасывает исключение SQLClientInfoException, указанное значение не было установлено для соединения.
Ниже перечислены стандартные свойства сведений о клиенте. Драйверы не обязаны поддерживать эти свойства, однако если драйвер поддерживает свойство сведений о клиенте, которое можно описать одним из стандартных свойств, следует использовать стандартное имя свойства.
- ApplicationName — имя приложения, использующего соединение в данный момент
- ClientUser — имя пользователя, для которого приложение, использующее соединение, выполняет работу. Оно может отличаться от имени пользователя, использованного при установлении соединения.
- ClientHostname — имя хоста компьютера, на котором запущено приложение, использующее соединение.
- Параметры:
-
name— имя свойства сведений о клиенте, которое нужно установить -
value— значение, которое нужно установить для свойства сведений о клиенте. Если значение равно null, текущее значение указанного свойства сбрасывается. - Вызывает исключение:
-
SQLClientInfoException— если сервер базы данных возвращает ошибку при установке значения сведений о клиенте на сервере базы данных или этот метод вызван для закрытого соединения - Начиная с:
- 1.6
setClientInfo
void setClientInfo(Properties properties) throws SQLClientInfoException
Properties содержит имена и значения свойств сведений о клиенте, которые нужно установить. Набор свойств сведений о клиенте, содержащихся в списке свойств, заменяет текущий набор свойств сведений о клиенте соединения. Если свойство, установленное для соединения в данный момент, отсутствует в списке свойств, оно сбрасывается. Передача пустого списка свойств сбросит все свойства соединения. Дополнительные сведения см. в разделе setClientInfo (String, String). Если при установке любого из свойств сведений о клиенте возникает ошибка, выбрасывается исключение SQLClientInfoException. Объект SQLClientInfoException содержит сведения о том, какие свойства сведений о клиенте не были установлены. Состояние сведений о клиенте неизвестно, поскольку некоторые базы данных не позволяют атомарно устанавливать несколько свойств сведений о клиенте. В таких базах данных до возникновения ошибки могли быть установлены одно или несколько свойств.
- Параметры:
-
properties— список свойств сведений о клиенте, которые нужно установить - Вызывает исключение:
-
SQLClientInfoException— если сервер базы данных возвращает ошибку при установке значений clientInfo на сервере базы данных или этот метод вызван для закрытого соединения - Начиная с:
- 1.6
- См. также:
getClientInfo
String getClientInfo(String name) throws SQLException
Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties, чтобы определить свойства сведений о клиенте, поддерживаемые драйвером.
- Параметры:
-
name— имя свойства сведений о клиенте, значение которого нужно получить - Возвращает:
- Значение указанного свойства сведений о клиенте
- Вызывает исключение:
-
SQLException— если сервер базы данных возвращает ошибку при получении значения сведений о клиенте из базы данных или этот метод вызван для закрытого соединения - Начиная с:
- 1.6
- См. также:
getClientInfo
Properties getClientInfo() throws SQLException
- Возвращает:
- Объект
Properties, содержащий имя и текущее значение каждого свойства сведений о клиенте, поддерживаемого драйвером. - Вызывает исключение:
-
SQLException— если сервер базы данных возвращает ошибку при получении значений сведений о клиенте из базы данных или этот метод вызван для закрытого соединения - Начиная с:
- 1.6
createArrayOf
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- элементы, заполняющие возвращаемый объект - Возвращает:
- объект Array, элементы которого соответствуют указанному типу SQL
- Выбрасывает:
-
SQLException- если произошла ошибка базы данных, тип JDBC не подходит для typeName и преобразование не поддерживается, typeName имеет значение null или этот метод вызван для закрытого соединения -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот тип данных - Начиная с:
- 1.6
createStruct
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
setSchema
void setSchema(String schema) throws SQLException
Если драйвер не поддерживает схемы, он молча проигнорирует этот запрос.
Вызов setSchema не влияет на ранее созданные или подготовленные объекты Statement. Реализация определяет, выполняется ли операция подготовки в СУБД сразу при вызове метода Connection prepareStatement или prepareCall. Для максимальной переносимости setSchema следует вызывать до создания или подготовки Statement.
- Параметры:
-
schema- имя схемы, в которой нужно работать - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - Начиная с:
- 1.7
- См. также:
getSchema
String getSchema() throws SQLException
Connection.- Возвращает:
- текущее имя схемы или
null, если схема отсутствует - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - Начиная с:
- 1.7
- См. также:
abort
void abort(Executor executor) throws SQLException
abort приводит к следующему: - Соединение помечается как закрытое
- Закрывается любое физическое соединение с базой данных
- Освобождаются ресурсы, используемые соединением
- Гарантируется, что любой поток, который в данный момент использует соединение, либо завершит работу, либо выбросит
SQLException.
Вызов abort помечает соединение как закрытое и освобождает все ресурсы. Вызов abort для закрытого соединения ничего не делает.
Освобождение ресурсов, удерживаемых соединением, может занять продолжительное время. После возврата метода abort соединение будет помечено как закрытое, а Executor, переданный в качестве параметра методу abort, может всё ещё выполнять задачи по освобождению ресурсов.
- Параметры:
-
executor- реализацияExecutor, которая будет использоваться методомabort. - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных илиexecutorимеет значениеnull - Начиная с:
- 1.7
- См. также:
setNetworkTimeout
void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException
Connection или объекты, созданные из Connection, будут ожидать ответа базы данных на любой запрос. Если на запрос не поступит ответ, ожидающий метод завершится с SQLException, а Connection или объекты, созданные из Connection, будут помечены как закрытые. Любое последующее использование этих объектов, за исключением методов close, isClosed или Connection.isValid, приведёт к SQLException. Примечание: Этот метод предназначен для устранения редкой, но серьёзной ситуации, когда из-за разделения сети потоки, выполняющие вызовы JDBC, могут без перерыва зависать при чтении из сокета до истечения TCP-тайм-аута ОС (обычно 10 минут). Этот метод связан с методом abort() , который позволяет потоку администратора освободить такие потоки в случаях, когда соединение JDBC доступно этому потоку администратора. Метод setNetworkTimeout охватывает случаи, когда поток администратора отсутствует или у него нет доступа к соединению. Последствия применения этого метода серьёзны, поэтому следует задавать достаточно большое значение, чтобы тайм-аут не срабатывал раньше других, более обычных тайм-аутов, например тайм-аутов транзакций.
Реализации драйверов JDBC могут также поддерживать метод setNetworkTimeout для ограничения времени ответа базы данных в средах, где сеть отсутствует.
Драйверы могут реализовывать некоторые или все вызовы API внутри себя с помощью нескольких передач данных между драйвером и базой данных. Реализация драйвера определяет, применяется ли ограничение всегда к ответу на вызов API или к каждому отдельному запросу, выполняемому в ходе вызова API.
Этот метод можно вызывать несколько раз, например, чтобы задать ограничение для участка кода JDBC и восстановить значение по умолчанию при выходе из этого участка. Вызов метода не влияет на уже выполняющиеся запросы.
Значение тайм-аута Statement.setQueryTimeout() не зависит от значения тайм-аута, указанного в setNetworkTimeout. Если срок действия тайм-аута запроса истекает раньше сетевого тайм-аута, выполнение инструкции будет отменено. Если сеть по-прежнему активна, инструкция и соединение останутся пригодными для использования. Однако если срок действия сетевого тайм-аута истекает раньше тайм-аута запроса или тайм-аут инструкции завершается с ошибкой из-за проблем с сетью, соединение будет помечено как закрытое, все удерживаемые им ресурсы будут освобождены, а соединение и инструкция станут непригодными для использования.
Когда драйвер определяет, что срок действия тайм-аута setNetworkTimeout истёк, драйвер JDBC помечает соединение как закрытое и освобождает все удерживаемые им ресурсы.
- Параметры:
-
executor- реализацияExecutor, которая будет использоваться методомsetNetworkTimeout. -
milliseconds- время ожидания завершения операции с базой данных в миллисекундах. Если драйвер JDBC не поддерживает миллисекунды, он округлит значение вверх до ближайшей секунды. Если период ожидания истечёт до завершения операции, будет выброшено исключение SQLException. Значение 0 означает отсутствие тайм-аута для операций с базой данных. - Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения,executorимеет значениеnullили значение, указанное дляseconds, меньше 0. -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Начиная с:
- 1.7
- См. также:
getNetworkTimeout
int getNetworkTimeout() throws SQLException
SQLException.- Возвращает:
- текущее ограничение тайм-аута в миллисекундах; ноль означает отсутствие ограничения
- Выбрасывает:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытогоConnection -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Начиная с:
- 1.7
- См. также:
beginRequest
default void beginRequest() throws SQLException
beginRequest и endRequest, не зависит от какой-либо другой работы, выполненной в этом соединении, будь то часть другого запроса или работа вне запроса. Запрос может включать несколько транзакций. Возможны зависимости от зафиксированного состояния базы данных, поскольку оно не является локальным для соединения. Локальным состоянием считается любое состояние, связанное с Connection и локальное для текущего Connection на стороне клиента или базы данных, которое нельзя прозрачно воспроизвести.
Вызовы beginRequest и endRequest не являются вложенными. Несколько вызовов beginRequest без промежуточного вызова endRequest не считаются ошибкой. Первый вызов beginRequest отмечает начало запроса, а последующие вызовы не выполняют никаких действий.
Использование beginRequest и endRequest необязательно, зависит от поставщика и в основном должно быть прозрачно. В частности, реализации могут обнаруживать условия, указывающие на зависимость от другой работы, например открытую транзакцию. Рекомендуется, но не обязательно, чтобы реализации выбрасывали SQLException, если существует активная транзакция и вызывается beginRequest. Использование этих методов может повысить производительность или дать другие преимущества. Дополнительную информацию см. в документации поставщика.
Рекомендуется заключать каждую единицу работы в пары beginRequest и endRequest так, чтобы в начале и конце запроса не было открытой транзакции и не было зависимости от локального состояния, пересекающей границы запросов. Зафиксированное состояние базы данных не является локальным.
- Примечание API:
- Этот метод предназначен для использования менеджерами пула соединений.
Перед возвратом соединения вызывающему коду менеджер пула должен вызвать
beginRequestдля базового соединения.Менеджеру пула не нужно вызывать
beginRequest, если:- Пул соединений кэширует объекты
PooledConnection - При вызове приложением
getConnectionвозвращается дескриптор логического соединения - Логическое
Connectionзакрывается вызовомConnection.closeдо возвратаPooledConnectionв кэш.
- Пул соединений кэширует объекты
- Требования к реализации:
- Реализация по умолчанию ничего не делает.
- Выбрасывает:
-
SQLException- если произошла ошибка - Начиная с:
- 9
- См. также:
endRequest
default void endRequest() throws SQLException
beginRequest и endRequest не являются вложенными. Несколько вызовов endRequest без промежуточного вызова beginRequest не считаются ошибкой. Первый вызов endRequest отмечает завершение запроса, а последующие вызовы не выполняют никаких действий. Если endRequest вызван без предварительного вызова beginRequest, он ничего не делает. Точное поведение этого метода зависит от поставщика. В частности, реализации могут обнаруживать условия, указывающие на зависимость от другой работы, например открытую транзакцию. Рекомендуется, но не обязательно, чтобы реализации выбрасывали SQLException, если существует активная транзакция и вызывается endRequest.
- Примечание API:
- Этот метод предназначен для использования менеджерами пула соединений.
Когда приложение возвращает соединение в пул, менеджер пула должен вызвать
endRequestдля базового соединения.Менеджеру пула не нужно вызывать
endRequest, если:- Пул соединений кэширует объекты
PooledConnection - При вызове приложением
getConnectionвозвращается дескриптор логического соединения - Логическое
Connectionзакрывается вызовомConnection.closeдо возвратаPooledConnectionв кэш.
- Пул соединений кэширует объекты
- Требования к реализации:
- Реализация по умолчанию ничего не делает.
- Выбрасывает:
-
SQLException- если произошла ошибка - Начиная с:
- 9
- См. также:
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- если при выполнении этой проверки произошла ошибка; если указанsuperShardingKeyбезshardingKey; если этот метод вызван для закрытогоconnection; или если значениеtimeoutотрицательно. -
SQLFeatureNotSupportedException- если драйвер не поддерживает сегментирование - Начиная с:
- 9
- См. также:
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
- См. также:
setShardingKey
default void setShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey) throws SQLException
- Примечание API:
- Этот метод задаёт указанные ключи сегментирования, но не требует обращения к базе данных для проверки их допустимости для
Connection. - Требования к реализации:
- Реализация по умолчанию выбрасывает
SQLFeatureNotSupportedException. - Параметры:
-
shardingKey- ключ сегментирования, задаваемый для этого соединения. Ключ сегментирования может иметь значениеnull -
superShardingKey- суперключ сегментирования, задаваемый для этого соединения. Суперключ сегментирования может иметь значениеnull - Выбрасывает:
-
SQLException- если при задании ключей сегментирования произошла ошибка; если этот метод вызван для закрытогоconnection; или если указанsuperShardingKeyбезshardingKey -
SQLFeatureNotSupportedException- если драйвер не поддерживает сегментирование - Начиная с:
- 9
- См. также:
setShardingKey
default void setShardingKey(ShardingKey shardingKey) throws SQLException
- Примечание API:
- Этот метод задаёт указанный ключ сегментирования, но не требует обращения к базе данных для проверки его допустимости для
Connection. - Требования к реализации:
- Реализация по умолчанию выбрасывает
SQLFeatureNotSupportedException. - Параметры:
-
shardingKey- ключ сегментирования, задаваемый для этого соединения. Ключ сегментирования может иметь значениеnull - Выбрасывает:
-
SQLException- если при задании ключа сегментирования произошла ошибка или этот метод вызван для закрытогоconnection -
SQLFeatureNotSupportedException- если драйвер не поддерживает сегментирование - Начиная с:
- 9
- См. также:
© 1993, 2025, 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/25/docs/api/java.sql/java/sql/Connection.html