Spec-Zone.ru › OpenJDK 17

Подключение к интерфейсу

Все суперинтерфейсы:
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 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(Executor executor)
Закрывает открытое соединение.
default void beginRequest()
Подсказка драйверу о начале запроса, независимой единицы работы, на этом соединении.
void clearWarnings()
Очищает все предупреждения, сообщённые для этого объекта Connection.
void close()
Освобождает базу данных и ресурсы JDBC этого объекта Connection немедленно вместо ожидания их автоматического освобождения.
void commit()
Делает все изменения, внесённые с момента предыдущего сохранения/отката, постоянными и освобождает все блокировки базы данных, в настоящее время удерживаемые этим объектом Connection.
Array createArrayOf(String typeName, Object[] elements)
Фабричный метод для создания объектов Array.
Blob createBlob()
Создаёт объект, реализующий интерфейс Blob.
Clob createClob()
Создаёт объект, реализующий интерфейс Clob.
NClob createNClob()
Создаёт объект, реализующий интерфейс NClob.
SQLXML createSQLXML()
Создаёт объект, реализующий интерфейс SQLXML.
Statement createStatement()
Создаёт объект Statement, для отправки SQL-запросов в базу данных.
Statement createStatement(int resultSetType, int resultSetConcurrency)
Создаёт объект Statement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью.
Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
Создаёт объект Statement, который будет генерировать объекты ResultSet с заданным типом, конкурентностью и удерживаемостью.
Struct createStruct(String typeName, Object[] attributes)
Фабричный метод для создания объектов Struct.
default void endRequest()
Подсказка драйверу о завершении запроса, независимой единицы работы.
boolean getAutoCommit()
Возвращает текущий режим автоматического подтверждения для этого объекта Connection.
String getCatalog()
Возвращает текущее имя каталога этого объекта Connection.
Properties getClientInfo()
Возвращает список, содержащий имя и текущее значение каждого свойства клиентской информации, поддерживаемого драйвером.
String getClientInfo(String name)
Возвращает значение свойства клиентской информации, указанного по имени.
int getHoldability()
Возвращает текущую удерживаемость объектов ResultSet, созданных с использованием этого объекта Connection.
DatabaseMetaData getMetaData()
Возвращает объект DatabaseMetaData, содержащий метаданные о базе данных, к которой это объект Connection представляет соединение.
int getNetworkTimeout()
Возвращает количество миллисекунд, которое драйвер будет ждать завершения запроса к базе данных.
String getSchema()
Возвращает текущее имя схемы этого объекта Connection.
int getTransactionIsolation()
Возвращает текущий уровень изоляции транзакции этого объекта Connection.
Map<String,Class<?>> getTypeMap()
Возвращает объект Map, связанный с этим объектом Connection.
SQLWarning getWarnings()
Возвращает первое предупреждение, сообщённое вызовами этого объекта Connection.
boolean isClosed()
Возвращает, был ли закрыт этот объект Connection.
boolean isReadOnly()
Возвращает, находится ли этот объект Connection в режиме только для чтения.
boolean isValid(int timeout)
Возвращает true, если соединение не закрыто и всё ещё валидно.
String nativeSQL(String sql)
Преобразует данный SQL-запрос в системную родную грамматику SQL.
CallableStatement prepareCall(String sql)
Создаёт объект CallableStatement для вызова хранимых процедур базы данных.
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency)
Создаёт объект CallableStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью.
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
Создаёт объект CallableStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью.
PreparedStatement prepareStatement(String sql)
Создаёт объект PreparedStatement для отправки параметризованных SQL-запросов в базу данных.
PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
Создаёт стандартный объект PreparedStatement, который имеет возможность извлечения автоматически сгенерированных ключей.
PreparedStatement prepareStatement(String sql, int[] columnIndexes)
Создаёт стандартный объект PreparedStatement, способный вернуть автоматически сгенерированные ключи, обозначенные заданным массивом.
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
Создаёт объект PreparedStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью.
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
Создаёт объект PreparedStatement, который будет генерировать объекты ResultSet с заданным типом, конкурентностью и удерживаемостью.
PreparedStatement prepareStatement(String sql, String[] columnNames)
Создаёт стандартный объект PreparedStatement, способный вернуть автоматически сгенерированные ключи, обозначенные заданным массивом.
void releaseSavepoint(Savepoint savepoint)
Удаляет указанные объекты Savepoint и последующие объекты Savepoint из текущей транзакции.
void rollback()
Отменяет все изменения, внесённые в текущей транзакции, и освобождает все блокировки базы данных, в настоящее время удерживаемые этим объектом Connection.
void rollback(Savepoint savepoint)
Отменяет все изменения, внесённые после того, как был установлен данный объект Savepoint.
void setAutoCommit(boolean autoCommit)
Устанавливает режим автоматического подтверждения этого соединения в заданное состояние.
void setCatalog(String catalog)
Устанавливает заданное имя каталога для выбора подпространства базы данных этого объекта Connection для работы.
void setClientInfo(String name, String value)
Устанавливает значение свойства клиентской информации, указанного по имени, в значение, указанное значением.
void setClientInfo(Properties properties)
Устанавливает значения свойств клиентской информации соединения.
void setHoldability(int holdability)
Изменяет стандартную удерживаемость объектов ResultSet , созданных с использованием этого объекта Connection , на заданную удерживаемость.
void setNetworkTimeout(Executor executor, int milliseconds)
Устанавливает максимальный период ожидания базы данных для ответа на любой запрос для этого соединения или объектов, созданных из Connection.
void setReadOnly(boolean readOnly)
Переводит это соединение в режим только для чтения как подсказка драйверу для активации оптимизаций базы данных.
Savepoint setSavepoint()
Создаёт безымянный контрольный пункт в текущей транзакции и возвращает новый объект Savepoint, который его представляет.
Savepoint setSavepoint(String name)
Создаёт контрольный пункт с заданным именем в текущей транзакции и возвращает новый объект Savepoint, который его представляет.
void setSchema(String schema)
Устанавливает заданное имя схемы для доступа.
default void setShardingKey(ShardingKey shardingKey)
Устанавливает shardingKey для использования с этим соединением
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)
Попытка изменить уровень изоляции транзакций для данного объекта Connection на указанный.
void setTypeMap(Map<String,Class<?>> map)
Устанавливает данный объект TypeMap в качестве карты типов для данного объекта Connection.

Методы, объявленные в интерфейсе java.sql.Wrapper

isWrapperFor, unwrap

Подробное описание полей

TRANSACTION_NONE

static final int TRANSACTION_NONE
Константа, указывающая, что транзакции не поддерживаются.
См. также:
  • Значения константных полей

TRANSACTION_READ_UNCOMMITTED

static final int TRANSACTION_READ_UNCOMMITTED
Константа, указывающая, что могут произойти грязные чтения, невоспроизводимые чтения и призрачные чтения. Этот уровень позволяет строке, изменённой одной транзакцией, быть прочитанной другой транзакцией до того, как любые изменения в этой строке будут подтверждены (“грязное чтение”). Если какие-либо из изменений будут отменены, вторая транзакция получит недействительную строку.
См. также:
  • Значения константных полей

TRANSACTION_READ_COMMITTED

static final int TRANSACTION_READ_COMMITTED
Константа, указывающая, что грязные чтения предотвращаются; невоспроизводимые чтения и призрачные чтения могут произойти. Этот уровень только запрещает транзакции читать строку с неподтверждёнными изменениями в ней.
См. также:
  • Значения константных полей

TRANSACTION_REPEATABLE_READ

static final int TRANSACTION_REPEATABLE_READ
Константа, указывающая, что грязные чтения и невоспроизводимые чтения предотвращаются; призрачные чтения могут произойти. Этот уровень запрещает транзакции читать строку с неподтверждёнными изменениями в ней, а также предотвращает ситуацию, когда одна транзакция читает строку, вторая транзакция изменяет строку, а первая транзакция повторно считывает строку, получая разные значения во второй раз (“невоспроизводимое чтение”).
См. также:
  • Значения константных полей

TRANSACTION_SERIALIZABLE

static final int TRANSACTION_SERIALIZABLE
Константа, указывающая, что грязные чтения, невоспроизводимые чтения и призрачные чтения предотвращаются. Этот уровень включает запреты в TRANSACTION_REPEATABLE_READ и дополнительно запрещает ситуацию, когда одна транзакция считывает все строки, удовлетворяющие условию WHERE, вторая транзакция вставляет строку, удовлетворяющую этому WHERE условию, и первая транзакция повторно считывает по тому же условию, получая дополнительную “призрачную” строку при повторном чтении.
См. также:
  • Значения константных полей

Подробное описание методов

createStatement

Statement createStatement() throws SQLException
Создаёт объект Statement для отправки SQL-запросов в базу данных. SQL-запросы без параметров обычно выполняются с помощью объектов Statement. Если один и тот же SQL-запрос выполняется многократно, может быть эффективнее использовать объект PreparedStatement.

Результаты, созданные с помощью возвращённого объекта Statement, по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень конкурентности CONCUR_READ_ONLY. Удерживаемость созданных наборов результатов можно определить, вызвав getHoldability().

Возвращает:
новый стандартный объект Statement
Исключения:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения

prepareStatement

PreparedStatement prepareStatement(String sql) throws SQLException
Создаёт объект PreparedStatement для отправки параметризованных SQL-запросов в базу данных.

SQL-запрос с параметрами IN или без них может быть предварительно скомпилирован и сохранён в объекте PreparedStatement . Затем этот объект можно использовать для эффективного многократного выполнения этого запроса.

Примечание: Этот метод оптимизирован для обработки параметризованных SQL-запросов, которые извлекают выгоду из предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может быть отправлен в базу данных только при выполнении объекта PreparedStatement. Это не имеет непосредственного влияния на пользователей, однако влияет на то, какие методы генерируют определённые объекты SQLException.

Наборы результатов, созданные с помощью возвращённого объекта PreparedStatement, по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень конкурентности CONCUR_READ_ONLY. Удерживаемость созданных наборов результатов можно определить, вызвав getHoldability().

Параметры:
sql - SQL-запрос, который может содержать один или несколько заполнительных параметров IN “?”
Возвращает:
новый стандартный объект PreparedStatement , содержащий предварительно скомпилированный SQL-запрос
Исключения:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения

prepareCall

CallableStatement prepareCall(String sql) throws SQLException
Создаёт объект CallableStatement для вызова хранимых процедур базы данных. Объект CallableStatement предоставляет методы для настройки параметров IN и OUT и методы для выполнения вызова хранимой процедуры.

Примечание: Этот метод оптимизирован для обработки запросов вызова хранимых процедур. Некоторые драйверы могут отправить запрос вызова в базу данных при выполнении метода prepareCall; другие могут подождать до выполнения объекта CallableStatement. Это не оказывает прямого влияния на пользователей, но влияет на то, какие методы генерируют определённые объекты SQLException.

Наборы результатов, созданные с помощью возвращённого объекта CallableStatement, по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень конкурентности CONCUR_READ_ONLY. Удерживаемость созданных наборов результатов можно определить, вызвав getHoldability().

Параметры:
sql - SQL-запрос, который может содержать один или несколько знаков параметра “?”. Обычно этот запрос указывается с помощью синтаксиса JDBC для вызовов.
Возвращает:
новый стандартный объект CallableStatement , содержащий предварительно скомпилированный SQL-запрос
Исключения:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения

nativeSQL

String nativeSQL(String sql) throws SQLException
Преобразует заданный SQL-запрос в системную родную SQL-грамматику. Драйвер может преобразовать 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
Делает все изменения, внесенные с момента предыдущего выполнения commit/rollback, постоянными и освобождает все блокировки базы данных, в настоящее время удерживаемые этим Connection объектом. Этот метод следует использовать только при отключенном режиме автоматического подтверждения.
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределенной транзакции, если этот метод вызван для закрытого соединения или этот Connection объект находится в режиме автоматического подтверждения
See Also:
  • setAutoCommit(boolean)

rollback

void rollback() throws SQLException
Отменяет все изменения, внесенные в текущей транзакции, и освобождает все блокировки базы данных, в настоящее время удерживаемые этим Connection объектом. Этот метод следует использовать только при отключенном режиме автоматического подтверждения.
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределенной транзакции, этот метод вызван для закрытого соединения или этот Connection объект находится в режиме автоматического подтверждения
See Also:
  • setAutoCommit(boolean)

close

void close() throws SQLException
Немедленно освобождает ресурсы базы данных и JDBC этого Connection объекта, вместо ожидания их автоматического освобождения.

Вызов метода close для Connection объекта, который уже закрыт, является пустой операцией.

Настоятельно рекомендуется, чтобы приложение явно подтверждало или отменяло активную транзакцию перед вызовом метода close. Если метод close вызывается, и существует активная транзакция, результаты определяются реализацией.

Specified by:
close в интерфейсе AutoCloseable
Throws:
SQLException - если произошла ошибка доступа к базе данных

isClosed

boolean isClosed() throws SQLException
Возвращает, закрыт ли этот Connection объект. Соединение закрыто, если для него был вызван метод close или произошли определенные фатальные ошибки. Этот метод гарантированно вернет true только при вызове после вызова метода Connection.close.

Этот метод, как правило, не может использоваться для определения того, является ли соединение с базой данных допустимым или недопустимым. Типичный клиент может определить, что соединение недействительно, перехватив любые исключения, которые могут быть выброшены при попытке выполнения операции.

Returns:
true если этот Connection объект закрыт; false если он все еще открыт
Throws:
SQLException - если произошла ошибка доступа к базе данных

getMetaData

DatabaseMetaData getMetaData() throws SQLException
Возвращает объект DatabaseMetaData, содержащий метаданные о базе данных, к которой это Connection объект представляет собой подключение. Метаданные включают информацию о таблицах базы данных, поддерживаемом синтаксисе SQL, хранимых процедурах, возможностях этого подключения и т.д.
Returns:
объект DatabaseMetaData для этого Connection объекта
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения

setReadOnly

void setReadOnly(boolean readOnly) throws SQLException
Переводит это подключение в режим только для чтения в качестве подсказки драйверу для включения оптимизаций базы данных.

Примечание: Этот метод нельзя вызывать во время транзакции.

Parameters:
readOnly - true включает режим только для чтения; false отключает его
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или этот метод вызван во время транзакции

isReadOnly

boolean isReadOnly() throws SQLException
Возвращает, находится ли этот Connection объект в режиме только для чтения.
Returns:
true если этот Connection объект предназначен только для чтения; false в противном случае
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения

setCatalog

void setCatalog(String catalog) throws SQLException
Устанавливает заданное имя каталога для выбора подпространства базы данных этого Connection объекта для работы.

Если драйвер не поддерживает каталоги, он проигнорирует этот запрос.

Вызов setCatalog не влияет на ранее созданные или подготовленные Statement объекты. Реализация определяет, происходит ли операция подготовки DBMS немедленно при вызове метода Connection или prepareCall. Для максимальной переносимости setCatalog должен вызываться до создания или подготовки Statement.

Parameters:
catalog - имя каталога (подпространства в базе данных этого Connection объекта), в котором необходимо работать
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
See Also:
  • getCatalog()

getCatalog

String getCatalog() throws SQLException
Возвращает текущее имя каталога этого Connection объекта.
Returns:
текущее имя каталога или null если его нет
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
See Also:
  • setCatalog(java.lang.String)

setTransactionIsolation

void setTransactionIsolation(int level) throws SQLException
Попытка изменить уровень изоляции транзакции для этого Connection объекта на заданный. Константы, определенные в интерфейсе Connection, являются возможными уровнями изоляции транзакций.

Примечание: Если этот метод вызывается во время транзакции, результат определяется реализацией.

Parameters:
level - одна из следующих констант Connection: Connection.TRANSACTION_READ_UNCOMMITTED, Connection.TRANSACTION_READ_COMMITTED, Connection.TRANSACTION_REPEATABLE_READ, или Connection.TRANSACTION_SERIALIZABLE. (Обратите внимание, что Connection.TRANSACTION_NONE нельзя использовать, так как она указывает, что транзакции не поддерживаются.)
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или заданный параметр не является одной из констант Connection
See Also:
  • DatabaseMetaData.supportsTransactionIsolationLevel(int)
  • getTransactionIsolation()

getTransactionIsolation

int getTransactionIsolation() throws SQLException
Возвращает текущий уровень изоляции транзакций этого Connection объекта.
Returns:
текущий уровень изоляции транзакций, который будет одной из следующих констант: Connection.TRANSACTION_READ_UNCOMMITTED, Connection.TRANSACTION_READ_COMMITTED, Connection.TRANSACTION_REPEATABLE_READ, Connection.TRANSACTION_SERIALIZABLE, или Connection.TRANSACTION_NONE.
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
See Also:
  • setTransactionIsolation(int)

getWarnings

SQLWarning getWarnings() throws SQLException
Возвращает первое предупреждение, сообщенное вызовами этого Connection объекта. Если предупреждений несколько, последующие предупреждения будут связаны с первым и могут быть получены путем вызова метода SQLWarning.getNextWarning на предупреждении, полученном ранее.

Этот метод нельзя вызывать для закрытого соединения; при этом будет выброшено SQLException.

Примечание: Последующие предупреждения будут привязаны к этому SQLWarning.

Returns:
первый объект SQLWarning или null если их нет
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
See Also:
  • SQLWarning

clearWarnings

void clearWarnings() throws SQLException
Очищает все предупреждения, сообщенные для этого Connection объекта. После вызова этого метода метод getWarnings возвращает null до тех пор, пока новое предупреждение не будет сообщено для этого Connection объекта.
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения

createStatement

Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
Создаёт объект Statement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. Этот метод аналогичен методу createStatement выше, но он позволяет переопределить тип и конкурентность набора результатов по умолчанию. Уровень доступности созданных наборов результатов можно определить, вызвав getHoldability().
Parameters:
resultSetType - тип набора результатов; один из ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, или ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency - тип конкурентности; один из ResultSet.CONCUR_READ_ONLY или ResultSet.CONCUR_UPDATABLE
Returns:
новый объект Statement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданные параметры не являются ResultSet константами, указывающими тип и конкурентность
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов и конкурентности набора результатов.
Since:
1.2

prepareStatement

PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
Создаёт объект PreparedStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. Этот метод аналогичен методу prepareStatement выше, но он позволяет переопределить тип и конкурентность набора результатов по умолчанию. Уровень доступности созданных наборов результатов можно определить, вызвав getHoldability().
Parameters:
sql - объект String, представляющий SQL-запрос, который будет отправлен в базу данных; может содержать один или несколько параметров '?' IN
resultSetType - тип набора результатов; один из ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, или ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency - тип конкурентности; один из ResultSet.CONCUR_READ_ONLY или ResultSet.CONCUR_UPDATABLE
Returns:
новый объект PreparedStatement, содержащий предварительно скомпилированный SQL-запрос, который будет генерировать объекты ResultSet с заданным типом и конкурентностью
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданные параметры не являются ResultSet константами, указывающими тип и конкурентность
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов и конкурентности набора результатов.
Since:
1.2

prepareCall

CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
Создаёт объект CallableStatement, который будет генерировать объекты ResultSet с заданным типом и конкурентностью. Этот метод аналогичен методу prepareCall выше, но он позволяет переопределить тип и конкурентность набора результатов по умолчанию. Уровень доступности созданных наборов результатов можно определить, вызвав getHoldability().
Parameters:
sql - объект String, представляющий SQL-запрос, который будет отправлен в базу данных; может содержать один или несколько параметров '?'
resultSetType - тип набора результатов; один из ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, или ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency - тип конкурентности; один из ResultSet.CONCUR_READ_ONLY или ResultSet.CONCUR_UPDATABLE
Returns:
новый объект CallableStatement, содержащий предварительно скомпилированный SQL-запрос, который будет генерировать объекты ResultSet с заданным типом и конкурентностью
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданные параметры не являются ResultSet константами, указывающими тип и конкурентность
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов и конкурентности набора результатов.
Since:
1.2

getTypeMap

Map<String,Class<?>> getTypeMap() throws SQLException
Возвращает объект Map, связанный с этим объектом Connection. Если приложение не добавило запись, возвращаемая карта типов будет пустой.

Вы должны вызвать setTypeMap после внесения изменений в объект Map, возвращённый из getTypeMap, так как драйвер JDBC может создать внутреннюю копию объекта Map, переданного в setTypeMap:

      Map<String,Class<?>> myMap = con.getTypeMap();
      myMap.put("mySchemaName.ATHLETES", Athletes.class);
      con.setTypeMap(myMap);
 
Returns:
объект java.util.Map, связанный с этим объектом Connection
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
Since:
1.2
See Also:
  • setTypeMap(java.util.Map<java.lang.String, java.lang.Class<?>>)

setTypeMap

void setTypeMap(Map<String,Class<?>> map) throws SQLException
Устанавливает заданный объект TypeMap в качестве карты типов для этого объекта Connection. Карта типов будет использоваться для пользовательского сопоставления SQL-структурированных типов и типов DISTINCT.

Вы должны установить значения для TypeMap до вызова setMap, так как драйвер JDBC может создать внутреннюю копию TypeMap:

      Map myMap<String,Class<?>> = new HashMap<String,Class<?>>();
      myMap.put("mySchemaName.ATHLETES", Athletes.class);
      con.setTypeMap(myMap);
 
Parameters:
map - объект java.util.Map для установки в качестве замены стандартной карты типов этого объекта Connection
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданный параметр не является объектом java.util.Map
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
Since:
1.2
See Also:
  • getTypeMap()

setHoldability

void setHoldability(int holdability) throws SQLException
Изменяет уровень доступности объектов ResultSet по умолчанию, созданных с помощью этого объекта Connection, на указанный уровень доступности. Уровень доступности объектов ResultSet по умолчанию можно определить, вызвав DatabaseMetaData.getResultSetHoldability().
Parameters:
holdability - константа уровня доступности ResultSet; один из ResultSet.HOLD_CURSORS_OVER_COMMIT или ResultSet.CLOSE_CURSORS_AT_COMMIT
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданный параметр не является ResultSet константой, указывающей уровень доступности
SQLFeatureNotSupportedException - если указанный уровень доступности не поддерживается
Since:
1.4
See Also:
  • getHoldability()
  • DatabaseMetaData.getResultSetHoldability()
  • ResultSet

getHoldability

int getHoldability() throws SQLException
Возвращает текущий уровень доступности объектов ResultSet , созданных с помощью этого объекта Connection.
Returns:
уровень доступности, один из ResultSet.HOLD_CURSORS_OVER_COMMIT или ResultSet.CLOSE_CURSORS_AT_COMMIT
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении
Since:
1.4
See Also:
  • setHoldability(int)
  • DatabaseMetaData.getResultSetHoldability()
  • ResultSet

setSavepoint

Savepoint setSavepoint() throws SQLException
Создаёт неопределённую точку сохранения в текущей транзакции и возвращает новый объект Savepoint, который её представляет.

если setSavepoint вызван вне активной транзакции, транзакция будет начата в этой новой точке сохранения.

Returns:
новый объект Savepoint
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции, этот метод вызван на закрытом соединении или этот объект Connection в данный момент находится в режиме автоматического подтверждения
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
Since:
1.4
See Also:
  • Savepoint

setSavepoint

Savepoint setSavepoint(String name) throws SQLException
Создаёт точку сохранения с заданным именем в текущей транзакции и возвращает новый объект Savepoint, который её представляет.

если setSavepoint вызван вне активной транзакции, транзакция будет начата в этой новой точке сохранения.

Parameters:
name - строка, содержащая имя точки сохранения
Returns:
новый объект Savepoint
Throws:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции, этот метод вызван на закрытом соединении или этот объект Connection в данный момент находится в режиме автоматического подтверждения
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
Since:
1.4
See Also:
  • Savepoint

откат

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-запрос, который может содержать один или несколько заполнительных параметров '?';
autoGeneratedKeys - флаг, указывающий, должны ли возвращаться автоматически сгенерированные ключи; одно из Statement.RETURN_GENERATED_KEYS или Statement.NO_GENERATED_KEYS
Возвращает:
новый объект PreparedStatement, содержащий предварительно скомпилированный SQL-запрос, который будет иметь возможность возвращать автоматически сгенерированные ключи
Исключения:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван на закрытом соединении или заданный параметр не является Statement константой, указывающей, должны ли возвращаться автоматически сгенерированные ключи
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS
С:
1.4

prepareStatement

PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
Создаёт объект по умолчанию PreparedStatement , способный возвращать сгенерированные автоматически ключи, указанные заданным массивом. Этот массив содержит индексы столбцов в целевой таблице, которые содержат сгенерированные автоматически ключи, которые должны быть доступны. Драйвер проигнорирует массив, если SQL-запрос не является INSERT запросом или SQL-запросом, способным возвращать сгенерированные автоматически ключи (список таких запросов зависит от поставщика).

SQL-запрос с параметрами IN или без них может быть предварительно скомпилирован и сохранён в объекте PreparedStatement. Этот объект затем может быть использован для эффективного многократного выполнения этого запроса.

Примечание: Этот метод оптимизирован для работы с параметрическими SQL-запросами, которые выигрывают от предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может не быть отправлен в базу данных до выполнения объекта PreparedStatement. Это не оказывает прямого влияния на пользователей; однако, это влияет на то, какие методы выбрасывают определённые исключения SQLException.

Результаты запросов, созданные с помощью возвращённого объекта PreparedStatement по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень одновременности CONCUR_READ_ONLY. Уровень удержания созданных наборов результатов можно определить, вызвав getHoldability().

Parameters:
sql - SQL-запрос, который может содержать один или несколько заполнительных параметров '?' IN
columnIndexes - массив индексов столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки или строк
Returns:
новый объект PreparedStatement , содержащий предварительно скомпилированный запрос, способный возвращать сгенерированные автоматически ключи, указанные заданным массивом индексов столбцов
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод
Since:
1.4

prepareStatement

PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
Создаёт объект по умолчанию PreparedStatement , способный возвращать сгенерированные автоматически ключи, указанные заданным массивом. Этот массив содержит имена столбцов в целевой таблице, которые содержат сгенерированные автоматически ключи, которые должны быть возвращены. Драйвер проигнорирует массив, если SQL-запрос не является INSERT запросом или SQL-запросом, способным возвращать сгенерированные автоматически ключи (список таких запросов зависит от поставщика).

SQL-запрос с параметрами IN или без них может быть предварительно скомпилирован и сохранён в объекте PreparedStatement. Этот объект затем может быть использован для эффективного многократного выполнения этого запроса.

Примечание: Этот метод оптимизирован для работы с параметрическими SQL-запросами, которые выигрывают от предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может не быть отправлен в базу данных до выполнения объекта PreparedStatement. Это не оказывает прямого влияния на пользователей; однако, это влияет на то, какие методы выбрасывают определённые исключения SQLException.

Результаты запросов, созданные с помощью возвращённого объекта PreparedStatement по умолчанию будут типа TYPE_FORWARD_ONLY и иметь уровень одновременности CONCUR_READ_ONLY. Уровень удержания созданных наборов результатов можно определить, вызвав getHoldability().

Parameters:
sql - SQL-запрос, который может содержать один или несколько заполнительных параметров '?' IN
columnNames - массив имён столбцов, указывающих столбцы, которые должны быть возвращены из вставленной строки или строк
Returns:
новый объект PreparedStatement , содержащий предварительно скомпилированный запрос, способный возвращать сгенерированные автоматически ключи, указанные заданным массивом имён столбцов
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван на закрытом соединении
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот метод
Since:
1.4

createClob

Clob createClob() throws SQLException
Создаёт объект, реализующий интерфейс Clob. Возвращаемый объект изначально не содержит данных. Методы setAsciiStream, setCharacterStream и setString интерфейса Clob могут быть использованы для добавления данных в Clob.
Returns:
Объект, реализующий интерфейс Clob
Throws:
SQLException - если объект, реализующий интерфейс Clob не может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных.
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот тип данных
Since:
1.6

createBlob

Blob createBlob() throws SQLException
Создаёт объект, реализующий интерфейс Blob. Возвращаемый объект изначально не содержит данных. Методы setBinaryStream и setBytes интерфейса Blob могут быть использованы для добавления данных в Blob.
Returns:
Объект, реализующий интерфейс Blob
Throws:
SQLException - если объект, реализующий интерфейс Blob не может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных.
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот тип данных
Since:
1.6

createNClob

NClob createNClob() throws SQLException
Создаёт объект, реализующий интерфейс NClob. Возвращаемый объект изначально не содержит данных. Методы setAsciiStream, setCharacterStream и setString интерфейса NClob могут быть использованы для добавления данных в NClob.
Returns:
Объект, реализующий интерфейс NClob
Throws:
SQLException - если объект, реализующий интерфейс NClob не может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных.
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот тип данных
Since:
1.6

createSQLXML

SQLXML createSQLXML() throws SQLException
Создаёт объект, реализующий интерфейс SQLXML. Возвращаемый объект изначально не содержит данных. Метод createXmlStreamWriter и setString интерфейса SQLXML могут быть использованы для добавления данных в объект SQLXML.
Returns:
Объект, реализующий интерфейс SQLXML
Throws:
SQLException - если объект, реализующий интерфейс SQLXML не может быть создан, этот метод вызван на закрытом соединении или произошла ошибка доступа к базе данных.
SQLFeatureNotSupportedException - если JDBC-драйвер не поддерживает этот тип данных
Since:
1.6

isValid

boolean isValid(int timeout) throws SQLException
Возвращает true, если соединение не закрыто и всё ещё валидно. Драйвер должен отправить запрос к соединению или использовать другой механизм, который положительно подтверждает, что соединение всё ещё валидно, когда этот метод вызывается.

Запрос, отправленный драйвером для проверки соединения, выполняется в контексте текущей транзакции.

Parameters:
timeout - Время в секундах, чтобы подождать выполнения операции базы данных для проверки соединения. Если период ожидания истечёт до завершения операции, этот метод возвращает false. Значение 0 указывает, что таймаут для операции базы данных не применяется.
Returns:
true, если соединение валидно, false в противном случае
Throws:
SQLException - если значение, предоставленное для timeout , меньше 0
Since:
1.6
See Also:
  • DatabaseMetaData.getClientInfoProperties()

setClientInfo

void setClientInfo(String name, String value) throws SQLClientInfoException
Устанавливает значение свойства клиентской информации, указанного именем, в значение, указанное значением.

Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties для определения свойств клиентской информации, поддерживаемых драйвером, и максимальной длины, которая может быть указана для каждого свойства.

Драйвер хранит указанное значение в подходящем месте в базе данных. Например, в специальном регистре, параметре сессии или столбце таблицы системы. Для повышения эффективности драйвер может отложить установку значения в базе данных до следующего момента выполнения или подготовки запроса. Помимо хранения клиентской информации в соответствующем месте в базе данных, эти методы никак не изменят поведение соединения. Указанные значения этих методов используются только для целей учета, диагностики и отладки.

Драйвер должен сгенерировать предупреждение, если имя клиентской информации, указанное, не распознаётся драйвером.

Если значение, указанное в этом методе, больше максимальной длины для свойства, драйвер может либо обрезать значение и сгенерировать предупреждение, либо сгенерировать SQLClientInfoException. Если драйвер сгенерирует SQLClientInfoException, указанное значение не было установлено в соединении.

Ниже приведены стандартные свойства клиентской информации. Драйверы не обязаны поддерживать эти свойства, однако, если драйвер поддерживает свойство клиентской информации, которое может быть описано одним из стандартных свойств, следует использовать стандартное имя свойства.

  • ApplicationName - Имя приложения, в настоящее время использующего подключение
  • ClientUser - Имя пользователя, от имени которого приложение, использующее подключение, выполняет работу. Это может не совпадать с именем пользователя, которое использовалось при установлении соединения.
  • ClientHostname - Имя хоста компьютера, на котором работает приложение, использующее подключение.
Parameters:
name - Имя свойства клиентской информации, которое нужно установить
value - Значение, которое нужно установить для свойства клиентской информации. Если значение равно null, текущее значение указанного свойства сбрасывается.
Throws:
SQLClientInfoException - если сервер базы данных возвращает ошибку при установке значения клиентской информации на сервере базы данных или этот метод вызывается для закрытого соединения
Since:
1.6

setClientInfo

void setClientInfo(Properties properties) throws SQLClientInfoException
Устанавливает значения свойств клиентской информации соединения. Объект Properties содержит имена и значения свойств клиентской информации, которые необходимо установить. Набор свойств клиентской информации, содержащихся в списке свойств, заменяет текущий набор свойств клиентской информации в соединении. Если свойство, которое в настоящее время установлено в соединении, отсутствует в списке свойств, это свойство сбрасывается. Указание пустого списка свойств очистит все свойства в соединении. См. setClientInfo (String, String) для получения дополнительной информации.

Если при установке любого из свойств клиентской информации произойдет ошибка, будет выброшено исключение SQLClientInfoException. Исключение SQLClientInfoException содержит информацию, указывающую, какие свойства клиентской информации не были установлены. Состояние клиентской информации неизвестно, поскольку некоторые базы данных не позволяют устанавливать несколько свойств клиентской информации атомарно. Для таких баз данных одно или несколько свойств могли быть установлены до возникновения ошибки.

Parameters:
properties - список свойств клиентской информации, которые необходимо установить
Throws:
SQLClientInfoException - если сервер базы данных возвращает ошибку при установке значений clientInfo на сервере базы данных или этот метод вызывается для закрытого соединения
Since:
1.6
See Also:
  • setClientInfo(String, String)

getClientInfo

String getClientInfo(String name) throws SQLException
Возвращает значение свойства клиентской информации, указанного именем. Этот метод может вернуть null, если указанное свойство клиентской информации не было установлено и не имеет значения по умолчанию. Этот метод также вернёт null, если указанное имя свойства клиентской информации не поддерживается драйвером.

Приложения могут использовать метод DatabaseMetaData.getClientInfoProperties для определения свойств клиентской информации, поддерживаемых драйвером.

Parameters:
name - Имя свойства клиентской информации для извлечения
Returns:
Значение указанного свойства клиентской информации
Throws:
SQLException - если сервер базы данных возвращает ошибку при извлечении значения клиентской информации из базы данных или этот метод вызывается для закрытого соединения
Since:
1.6
See Also:
  • DatabaseMetaData.getClientInfoProperties()

getClientInfo

Properties getClientInfo() throws SQLException
Возвращает список, содержащий имя и текущее значение каждого свойства клиентской информации, поддерживаемого драйвером. Значение свойства клиентской информации может быть null, если свойство не было установлено и не имеет значения по умолчанию.
Returns:
Объект Properties , содержащий имя и текущее значение каждого из поддерживаемых драйвером свойств клиентской информации.
Throws:
SQLException - если сервер базы данных возвращает ошибку при извлечении значений клиентской информации из базы данных или этот метод вызывается для закрытого соединения
Since:
1.6

createArrayOf

Array createArrayOf(String typeName, Object[] elements) throws SQLException
Метод фабрики для создания объектов массива.

Примечание: Когда createArrayOf используется для создания объекта массива, который отображается на примитивный тип данных, тогда определяется реализацией, является ли объект Array массивом этого примитивного типа данных или массивом Object.

Примечание: Драйвер JDBC отвечает за отображение элементов Object массива на тип SQL JDBC по умолчанию, определенный в java.sql.Types для данного класса Object. Отображение по умолчанию указано в Приложении B спецификации JDBC. Если полученный тип JDBC не является подходящим типом для данного typeName, то определяется реализацией, будет ли выброшено исключение SQLException или драйвер поддерживает преобразование.

Parameters:
typeName - имя SQL типа, к которому отображаются элементы массива. typeName - имя, специфичное для базы данных, которое может быть именем встроенного типа, пользователем типа или стандартным типом SQL, поддерживаемым этой базой данных. Это значение, возвращаемое Array.getBaseTypeName
elements - элементы, заполняющие возвращаемый объект
Returns:
объект массива, элементы которого отображаются на указанный тип SQL
Throws:
SQLException - если произошла ошибка доступа к базе данных, тип JDBC не подходит для typeName и преобразование не поддерживается, typeName равно null или этот метод вызывается для закрытого соединения
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот тип данных
Since:
1.6

createStruct

Struct createStruct(String typeName, Object[] attributes) throws SQLException
Метод фабрики для создания объектов Struct.
Parameters:
typeName - имя SQL типа структурированного типа SQL, к которому отображается этот объект Struct. typeName - имя пользовательского типа, определенного для этой базы данных. Это значение, возвращаемое Struct.getSQLTypeName.
attributes - атрибуты, заполняющие возвращаемый объект
Returns:
объект Struct, отображаемый на заданный тип SQL и заполненный заданными атрибутами
Throws:
SQLException - если произошла ошибка доступа к базе данных, typeName равно null или этот метод вызывается для закрытого соединения
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот тип данных
Since:
1.6

setSchema

void setSchema(String schema) throws SQLException
Устанавливает заданное имя схемы для доступа.

Если драйвер не поддерживает схемы, он проигнорирует этот запрос.

Вызов setSchema не влияет на ранее созданные или подготовленные объекты Statement. Определяется реализацией, выполняется ли операция подготовки DBMS немедленно при вызове метода Connection prepareStatement или prepareCall. Для максимальной переносимости setSchema следует вызывать перед созданием или подготовкой Statement.

Parameters:
schema - имя схемы, в которой необходимо работать
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызывается для закрытого соединения
Since:
1.7
See Also:
  • getSchema()

getSchema

String getSchema() throws SQLException
Извлекает текущее имя схемы этого объекта Connection.
Returns:
текущее имя схемы или null, если его нет
Throws:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызывается для закрытого соединения
Since:
1.7
See Also:
  • setSchema(java.lang.String)

Прервать

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

установитьТаймаутСети

void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException
Устанавливает максимальный период ожидания ответа базы данных для Connection или объектов, созданных из Connection. Если любой запрос остается без ответа, метод ожидания вернет SQLException, а Connection или объекты, созданные из Connection, будут помечены как закрытые. Любое последующее использование объектов, за исключением методов close, isClosed или Connection.isValid, приведет к исключению SQLException.

Примечание: Этот метод предназначен для решения редкой, но серьезной проблемы, когда сетевые разрывы могут привести к зависанию потоков, вызывающих вызовы JDBC в чтении сокетов, до тех пор, пока ОС TCP-TIMEOUT (обычно 10 минут) не истечет. Этот метод связан с методом abort() , который предоставляет административной нити средство освобождения таких нитей в случаях, когда соединение JDBC доступно административной нити. Метод setNetworkTimeout будет охватывать случаи, когда нет административной нити или она не имеет доступа к соединению. Этот метод имеет серьезные последствия и должен иметь достаточно высокое значение, чтобы никогда не срабатывать раньше других, более обычных таймаутов, таких как таймауты транзакций.

Реализации драйверов JDBC также могут выбрать поддержку метода setNetworkTimeout для ограничения времени ответа базы данных в средах без подключения к сети.

Драйверы могут внутренне реализовывать некоторые или все вызовы API с помощью нескольких внутренних передач драйвер-база данных, и решение о том, будет ли ограничение применяться всегда к ответу на вызов API или к любому отдельному запросу, сделанному во время вызова API, остается за реализацией драйвера.

Этот метод можно вызывать несколько раз, например, для установки ограничения для области кода JDBC и для сброса до значения по умолчанию при выходе из этой области. Вызов этого метода не оказывает влияния на уже ожидающие запросы.

Значение таймаута сети независимо от значения таймаута, указанного в setNetworkTimeout. Если таймаут запроса истекает до таймаута сети, выполнение оператора будет отменено. Если сеть по-прежнему активна, результат будет таким, что оператор и соединение по-прежнему пригодны для использования. Однако, если таймаут сети истекает до таймаута запроса или таймаут оператора не удается из-за проблем с сетью, соединение будет помечено как закрытое, все ресурсы, удерживаемые соединением, будут освобождены, и соединение, и оператор будут непригодны для использования.

Когда драйвер определит, что значение таймаута setNetworkTimeout истекло, драйвер JDBC помечает соединение как закрытое и освобождает все ресурсы, удерживаемые соединением.

Этот метод проверяет наличие объекта SQLPermission перед выполнением метода. Если объект SecurityManager существует и его метод checkPermission запрещает вызов setNetworkTimeout, этот метод генерирует исключение java.lang.SecurityException.

Параметры:
executor - Реализация Executor, которая будет использоваться setNetworkTimeout.
milliseconds - Время в миллисекундах, которое следует ожидать для завершения операции с базой данных. Если драйвер JDBC не поддерживает миллисекунды, драйвер JDBC округлит значение до ближайшей секунды. Если период таймаута истечет до завершения операции, будет сгенерировано исключение SQLException. Значение 0 указывает, что для операций с базой данных нет таймаута.
Исключения:
SQLException - если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения, executor находится в состоянии null, или значение, указанное для seconds, меньше 0.
SecurityException - если существует менеджер безопасности и его метод checkPermission запрещает вызов setNetworkTimeout.
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
С момента:
1.7
См. также:
  • SecurityManager.checkPermission(java.security.Permission)
  • Statement.setQueryTimeout(int)
  • getNetworkTimeout()
  • abort(java.util.concurrent.Executor)
  • Executor

получитьТаймаутСети

int getNetworkTimeout() throws SQLException
Возвращает количество миллисекунд, которое драйвер будет ждать завершения запроса к базе данных. Если предел времени истекает, генерируется 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 Note:
Этот метод предназначен для использования менеджерами пулов соединений.

Менеджер пула должен вызвать endRequest для базового соединения, когда приложение возвращает соединение обратно в пул соединений.

Менеджеру пула не нужно вызывать endRequest в следующих случаях:

  • Пул соединений кеширует объекты PooledConnection
  • Возвращает логическую дескриптор соединения при вызове getConnection приложением
  • Логическое соединение Connection закрывается вызовом Connection.close перед возвращением PooledConnection в кеш.
Implementation Requirements:
Реализация по умолчанию — команда без действия.
Throws:
SQLException - если произошла ошибка
Since:
9
See Also:
  • beginRequest()
  • PooledConnection

setShardingKeyIfValid

default boolean setShardingKeyIfValid(ShardingKey shardingKey, ShardingKey superShardingKey, int timeout) throws SQLException
Устанавливает и проверяет ключи фрагментации для этого соединения. Для ключа фрагментации может быть задано значение null. Действительность ключа фрагментации null зависит от поставщика. Для получения дополнительной информации обратитесь к документации поставщика.
API Note:
Этот метод проверяет, являются ли ключи фрагментации допустимыми для Connection. Значение тайм-аута указывает, сколько времени драйвер должен ждать, чтобы Connection подтвердил, что ключ фрагментации действителен, прежде чем setShardingKeyIfValid вернет false.
Implementation Requirements:
Реализация по умолчанию будет выбрасывать исключение SQLFeatureNotSupportedException.
Parameters:
shardingKey - ключ фрагментации, который должен быть проверен относительно этого соединения. Ключ фрагментации может быть null
superShardingKey - суперключ фрагментации, который должен быть проверен относительно этого соединения. Суперключ фрагментации может быть null.
timeout - время в секундах, до которого ожидается завершение процесса проверки, в противном случае процесс проверки прерывается. Значение 0 означает, что процесс проверки не будет ограничен по времени.
Returns:
true, если соединение валидно, ключи фрагментации валидны и установлены для этого соединения; false, если ключи фрагментации не валидны или период тайм-аута истекает до завершения операции.
Throws:
SQLException - если при выполнении этой проверки произошла ошибка; значение superSharedingKey указано без shardingKey; этот метод вызывается для закрытого connection; или значение timeout отрицательно.
SQLFeatureNotSupportedException - если драйвер не поддерживает фрагментацию
Since:
9
See Also:
  • ShardingKey
  • ShardingKeyBuilder

setShardingKeyIfValid

default boolean setShardingKeyIfValid(ShardingKey shardingKey, int timeout) throws SQLException
Устанавливает и проверяет ключ фрагментации для этого соединения. Для ключа фрагментации может быть задано значение null. Действительность ключа фрагментации null зависит от поставщика. Для получения дополнительной информации обратитесь к документации поставщика.
API Note:
Этот метод проверяет, является ли ключ фрагментации допустимым для Connection. Значение тайм-аута указывает, сколько времени драйвер должен ждать, чтобы Connection подтвердил, что ключ фрагментации действителен, прежде чем setShardingKeyIfValid вернёт false.
Implementation Requirements:
Реализация по умолчанию будет выбрасывать исключение SQLFeatureNotSupportedException.
Parameters:
shardingKey - ключ фрагментации, который должен быть проверен относительно этого соединения. Ключ фрагментации может быть null
timeout - время в секундах, до которого ожидается завершение процесса проверки, в противном случае процесс проверки прерывается. Значение 0 означает, что процесс проверки не будет ограничен по времени.
Returns:
true, если соединение валидно, ключ фрагментации валиден и может быть установлен для этого соединения; false, если ключ фрагментации не валиден или период тайм-аута истекает до завершения операции.
Throws:
SQLException - если при выполнении этой проверки произошла ошибка; этот метод вызывается для закрытого connection; или значение timeout отрицательно.
SQLFeatureNotSupportedException - если драйвер не поддерживает фрагментацию
Since:
9
See Also:
  • ShardingKey
  • ShardingKeyBuilder

setShardingKey

default void setShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey) throws SQLException
Устанавливает ключ фрагментации и суперключ фрагментации для использования с этим подключением
API Note:
Этот метод устанавливает указанные ключи фрагментации, но не требует обратного обращения к базе данных для проверки того, что ключи фрагментации валидны для Connection.
Implementation Requirements:
Реализация по умолчанию будет выбрасывать исключение SQLFeatureNotSupportedException.
Parameters:
shardingKey - ключ фрагментации, который нужно установить для этого подключения. Ключ фрагментации может быть null
superShardingKey - суперключ фрагментации, который нужно установить для этого подключения. Суперключ фрагментации может быть null
Throws:
SQLException - если при установке ключей фрагментации произошла ошибка; этот метод вызывается для закрытого connection; или значение superSharedingKey указано без shardingKey
SQLFeatureNotSupportedException - если драйвер не поддерживает фрагментацию
Since:
9
See Also:
  • ShardingKey
  • ShardingKeyBuilder

setShardingKey

default void setShardingKey(ShardingKey shardingKey) throws SQLException
Устанавливает ключ фрагментации для использования с этим подключением
API Note:
Этот метод устанавливает указанный ключ фрагментации, но не требует обратного обращения к базе данных для проверки того, что ключ фрагментации валиден для Connection.
Implementation Requirements:
Реализация по умолчанию будет выбрасывать исключение SQLFeatureNotSupportedException.
Parameters:
shardingKey - ключ фрагментации, который нужно установить для этого подключения. Ключ фрагментации может быть null
Throws:
SQLException - если при установке ключа фрагментации произошла ошибка; или этот метод вызывается для закрытого connection
SQLFeatureNotSupportedException - если драйвер не поддерживает фрагментацию
Since:
9
See Also:
  • ShardingKey
  • ShardingKeyBuilder

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.sql/java/sql/Connection.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API