Spec-Zone.ru › OpenJDK 21

Интерфейс подключения

Все суперинтерфейсы:
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 или объектов, созданных из 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
Делает все изменения, внесённые с момента предыдущего коммита/отката, постоянными и освобождает любые блокировки базы данных, в настоящее время удерживаемые этим 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-структурированных типов и типов-различий.

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

prepareStatement

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

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

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

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

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

prepareStatement

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

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

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

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

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

createClob

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

createBlob

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

createNClob

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

createSQLXML

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

isValid

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

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

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

Установить информацию о клиенте

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

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

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

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

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

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

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

Установить информацию о клиенте

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

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

Параметры:
properties - список свойств информации о клиенте для установки
Исключение:
SQLClientInfoException - если сервер базы данных возвращает ошибку при установке значений clientInfo на сервере базы данных или этот метод вызывается для закрытого подключения
С момента:
1.6
См. также:
  • setClientInfo(String, String)

Получить информацию о клиенте

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

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

Параметры:
name - Имя свойства информации о клиенте для получения
Возвращает:
Значение указанного свойства информации о клиенте
Исключение:
SQLException - если сервер базы данных возвращает ошибку при получении значения информации о клиенте из базы данных или этот метод вызывается для закрытого подключения
С момента:
1.6
См. также:
  • DatabaseMetaData.getClientInfoProperties()

Получить информацию о клиенте

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

Создать массив

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

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

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

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

Создать структуру

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

Установить схему

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

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

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

Параметры:
schema - имя схемы для работы
Исключение:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызывается для закрытого подключения
С момента:
1.7
См. также:
  • getSchema()

Получить схему

String getSchema() throws SQLException
Возвращает текущее имя схемы для этого объекта Connection.
Возвращает:
текущее имя схемы или null, если его нет
Исключение:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызывается для закрытого подключения
С момента:
1.7
См. также:
  • 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 и сброса до значения по умолчанию при выходе из этого участка. Вызов данного метода не влияет на уже находящиеся в очереди запросы.

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

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

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

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

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

int getNetworkTimeout() throws SQLException
Возвращает количество миллисекунд, которое драйвер будет ожидать завершения запроса к базе данных. Если предел превышен, выбрасывается исключение SQLException.
Возвращает:
текущее ограничение таймаута в миллисекундах; ноль означает отсутствие ограничения
Исключения:
SQLException - если произошла ошибка доступа к базе данных или данный метод вызван для закрытого Connection
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает данный метод
С:
1.7
См. также:
  • setNetworkTimeout(java.util.concurrent.Executor, int)

началоЗапроса

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 отмечает завершение запроса, а последующие вызовы обрабатываются как no-op. Если endRequest вызван без предварительного вызова beginRequest, это no-op.

Точное поведение этого метода зависит от поставщика. В частности, реализации могут обнаруживать условия, указывающие на зависимость от другой работы, такой как открытая транзакция. Хотя не является обязательным, рекомендуется, чтобы реализации выбрасывали SQLException, если активна транзакция, и endRequest вызывается.

API Note:
Этот метод предназначен для использования менеджерами пулов соединений.

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

Менеджеру пула нет необходимости вызывать endRequest если:

  • Пул соединений кэширует объекты PooledConnection
  • Возвращает логическую ручку соединения при вызове getConnection приложением
  • Логическое соединение Connection закрывается вызовом Connection.close перед возвращением PooledConnection в кэш.
Implementation Requirements:
Реализация по умолчанию — no-op.
Throws:
SQLException - если произошла ошибка
Since:
9
See Also:
  • 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 - если при выполнении этой проверки произошла ошибка; superShardingKey указан без 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; или superShardingKey указан без 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, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.sql/java/sql/Connection.html

Spec-Zone.ru

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