Spec-Zone.ru › OpenJDK 25

Интерфейс Connection

Все суперинтерфейсы:
AutoCloseable, Wrapper
public interface Connection extends Wrapper, AutoCloseable

Соединение (сеанс) с определённой базой данных. Операторы SQL выполняются, а результаты возвращаются в контексте соединения.

База данных объекта Connection может предоставлять сведения, описывающие её таблицы, поддерживаемый синтаксис SQL, хранимые процедуры, возможности этого соединения и так далее. Эти сведения получают с помощью метода getMetaData.

Примечание: При настройке Connection приложения JDBC должны использовать соответствующий метод Connection, например setAutoCommit или setTransactionIsolation. Если доступен метод JDBC, приложения не должны напрямую вызывать команды SQL для изменения конфигурации соединения. По умолчанию объект Connection находится в режиме автоматической фиксации, то есть автоматически фиксирует изменения после выполнения каждого оператора. Если режим автоматической фиксации отключён, для фиксации изменений необходимо явно вызвать метод commit; в противном случае изменения в базе данных не будут сохранены.

Новый объект Connection, созданный с помощью базового API JDBC 2.1, изначально имеет связанную с ним пустую карту типов. Пользователь может добавить в эту карту типов пользовательское сопоставление для UDT. Когда UDT извлекается из источника данных методом ResultSet.getObject, метод getObject проверяет карту типов соединения на наличие записи для этого UDT. Если такая запись есть, метод getObject сопоставляет UDT с указанным классом. Если записи нет, для UDT используется стандартное сопоставление.

Пользователь может создать новую карту типов, то есть объект java.util.Map, добавить в неё запись и передать её методам java.sql, которые могут выполнять пользовательское сопоставление. В этом случае метод будет использовать переданную карту типов вместо карты, связанной с соединением.

Например, следующий фрагмент кода указывает, что тип SQL ATHLETES будет сопоставлен с классом Athletes в языке программирования Java. Фрагмент кода извлекает карту типов для объекта Connection con, добавляет в неё запись, а затем задаёт карту типов с новой записью в качестве карты типов соединения.

     java.util.Map map = con.getTypeMap();
     map.put("mySchemaName.ATHLETES", Class.forName("Athletes"));
     con.setTypeMap(map);
С момента выпуска:
1.1
См. также:
  • DriverManager.getConnection(String, 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)
Задаёт для свойства информации о клиенте, указанного по имени, значение, заданное параметром 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)
Указывает ключ сегментирования, который следует использовать с этим соединением
default void setShardingKey(ShardingKey shardingKey, 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.

Методы, объявленные в интерфейсе 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. Этот метод следует использовать только при отключённом режиме автоматической фиксации.
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции, для закрытого соединения или если этот объект Connection работает в режиме автоматической фиксации
См. также:
  • setAutoCommit(boolean)

rollback

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

close

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

Вызов метода close для уже закрытого объекта Connection ничего не делает.

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

Определено в:
close в интерфейсе AutoCloseable
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных

isClosed

boolean isClosed() throws SQLException
Проверяет, был ли закрыт этот объект Connection. Соединение считается закрытым, если для него был вызван метод close или произошли определённые критические ошибки. Гарантируется, что этот метод вернёт true только в том случае, если он вызван после вызова метода Connection.close.

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

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

getMetaData

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

setReadOnly

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

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

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

isReadOnly

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

setCatalog

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

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

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

Параметры:
catalog — имя каталога (подпространства базы данных этого объекта Connection), в котором будет выполняться работа
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
См. также:
  • getCatalog()

getCatalog

String getCatalog() throws SQLException
Получает текущее имя каталога этого объекта Connection.
Возвращает:
текущее имя каталога или null, если каталог отсутствует
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
См. также:
  • setCatalog(String)

setTransactionIsolation

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

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

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

getTransactionIsolation

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

getWarnings

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

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

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

Возвращает:
первый объект SQLWarning или null, если предупреждений нет
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
См. также:
  • SQLWarning

clearWarnings

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

createStatement

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

prepareStatement

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

prepareCall

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

getTypeMap

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

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

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

setTypeMap

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

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

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

setHoldability

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

getHoldability

int getHoldability() throws SQLException
Возвращает текущую удерживаемость объектов ResultSet, созданных с помощью этого объекта Connection.
Возвращает:
удерживаемость: одно из значений ResultSet.HOLD_CURSORS_OVER_COMMIT или ResultSet.CLOSE_CURSORS_AT_COMMIT
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
Начиная с:
1.4
См. также:
  • setHoldability(int)
  • DatabaseMetaData.getResultSetHoldability()
  • ResultSet

setSavepoint

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

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

Возвращает:
новый объект Savepoint
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции или для закрытого соединения либо если этот объект Connection находится в режиме автофиксации
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
Начиная с:
1.4
См. также:
  • Savepoint

setSavepoint

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

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

Параметры:
name — объект String, содержащий имя точки сохранения
Возвращает:
новый объект Savepoint
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции или для закрытого соединения либо если этот объект Connection находится в режиме автофиксации
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
Начиная с:
1.4
См. также:
  • Savepoint

rollback

void rollback(Savepoint savepoint) throws SQLException
Отменяет все изменения, внесённые после установки указанного объекта Savepoint.

Этот метод следует использовать только при отключённой автофиксации.

Параметры:
savepoint — объект Savepoint, к которому следует выполнить откат
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван во время участия в распределённой транзакции или для закрытого соединения, объект Savepoint больше недействителен либо этот объект Connection находится в режиме автофиксации
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
Начиная с:
1.4
См. также:
  • Savepoint
  • rollback()

releaseSavepoint

void releaseSavepoint(Savepoint savepoint) throws SQLException
Удаляет указанную точку Savepoint и все последующие объекты Savepoint из текущей транзакции. Любая ссылка на точку сохранения после её удаления приведёт к выбросу исключения SQLException.
Параметры:
savepoint — объект Savepoint, который нужно удалить
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанный объект Savepoint не является допустимой точкой сохранения в текущей транзакции
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
Начиная с:
1.4

createStatement

Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
Создаёт объект Statement, который будет формировать объекты ResultSet с указанными типом, уровнем параллелизма и удерживаемостью. Этот метод аналогичен приведённому выше методу createStatement, но позволяет переопределить тип набора результатов, уровень параллелизма и удерживаемость по умолчанию.
Параметры:
resultSetType — одна из следующих констант ResultSet: ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE или ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency — одна из следующих констант ResultSet: ResultSet.CONCUR_READ_ONLY или ResultSet.CONCUR_UPDATABLE
resultSetHoldability — одна из следующих констант ResultSet: ResultSet.HOLD_CURSORS_OVER_COMMIT или ResultSet.CLOSE_CURSORS_AT_COMMIT
Возвращает:
новый объект Statement, который будет формировать объекты ResultSet с указанными типом, уровнем параллелизма и удерживаемостью
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанные параметры не являются константами ResultSet, задающими тип, уровень параллелизма и удерживаемость
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов, удерживаемости набора результатов и уровня параллелизма набора результатов.
Начиная с:
1.4
См. также:
  • ResultSet

prepareStatement

PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
Создаёт объект PreparedStatement, который будет формировать объекты ResultSet с указанными типом, уровнем параллелизма и удерживаемостью.

Этот метод аналогичен приведённому выше методу prepareStatement, но позволяет переопределить тип набора результатов, уровень параллелизма и удерживаемость по умолчанию.

Параметры:
sql — объект String, содержащий SQL-инструкцию для отправки в базу данных; может содержать один или несколько входных параметров «?»
resultSetType — одна из следующих констант ResultSet: ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE или ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency — одна из следующих констант ResultSet: ResultSet.CONCUR_READ_ONLY или ResultSet.CONCUR_UPDATABLE
resultSetHoldability — одна из следующих констант ResultSet: ResultSet.HOLD_CURSORS_OVER_COMMIT или ResultSet.CLOSE_CURSORS_AT_COMMIT
Возвращает:
новый объект PreparedStatement, содержащий предварительно скомпилированную SQL-инструкцию и формирующий объекты ResultSet с указанными типом, уровнем параллелизма и удерживаемостью
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанные параметры не являются константами ResultSet, задающими тип, уровень параллелизма и удерживаемость
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов, удерживаемости набора результатов и уровня параллелизма набора результатов.
Начиная с:
1.4
См. также:
  • ResultSet

prepareCall

CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
Создаёт объект CallableStatement, который будет формировать объекты ResultSet с указанными типом и уровнем параллелизма. Этот метод аналогичен приведённому выше методу prepareCall, но позволяет переопределить тип набора результатов, уровень параллелизма набора результатов и удерживаемость по умолчанию.
Параметры:
sql — объект String, содержащий SQL-инструкцию для отправки в базу данных; может содержать один или несколько параметров «?»
resultSetType — одна из следующих констант ResultSet: ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE или ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency — одна из следующих констант ResultSet: ResultSet.CONCUR_READ_ONLY или ResultSet.CONCUR_UPDATABLE
resultSetHoldability — одна из следующих констант ResultSet: ResultSet.HOLD_CURSORS_OVER_COMMIT или ResultSet.CLOSE_CURSORS_AT_COMMIT
Возвращает:
новый объект CallableStatement, содержащий предварительно скомпилированную SQL-инструкцию и формирующий объекты ResultSet с указанными типом, уровнем параллелизма и удерживаемостью
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанные параметры не являются константами ResultSet, задающими тип, уровень параллелизма и удерживаемость
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод или этот метод не поддерживается для указанного типа набора результатов, удерживаемости набора результатов и уровня параллелизма набора результатов.
Начиная с:
1.4
См. также:
  • ResultSet

prepareStatement

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

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

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

Параметры:
sql — SQL-инструкция, которая может содержать один или несколько заполнителей входных параметров «?»
autoGeneratedKeys — флаг, указывающий, следует ли возвращать автоматически сгенерированные ключи; одно из значений Statement.RETURN_GENERATED_KEYS или Statement.NO_GENERATED_KEYS
Возвращает:
новый объект PreparedStatement, содержащий предварительно скомпилированную SQL-инструкцию и способный возвращать автоматически сгенерированные ключи
Вызывает исключение:
SQLException — если произошла ошибка доступа к базе данных, этот метод вызван для закрытого соединения или указанный параметр не является константой Statement, указывающей, следует ли возвращать автоматически сгенерированные ключи
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод с константой Statement.RETURN_GENERATED_KEYS
Начиная с:
1.4

prepareStatement

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

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

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

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

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

prepareStatement

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

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

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

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

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

createClob

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

createBlob

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

createNClob

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

createSQLXML

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

isValid

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

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

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

setClientInfo

void setClientInfo(String name, String value) throws SQLClientInfoException
Устанавливает для свойства сведений о клиенте с указанным именем заданное значение.

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

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

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

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

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

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

setClientInfo

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

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

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

getClientInfo

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

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

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

getClientInfo

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

createArrayOf

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

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

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

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

createStruct

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

setSchema

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

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

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

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

getSchema

String getSchema() throws SQLException
Возвращает текущее имя схемы этого объекта Connection.
Возвращает:
текущее имя схемы или null, если схема отсутствует
Выбрасывает:
SQLException - если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
Начиная с:
1.7
См. также:
  • setSchema(String)

abort

void abort(Executor executor) throws SQLException
Завершает открытое соединение. Вызов abort приводит к следующему:
  • Соединение помечается как закрытое
  • Закрывается любое физическое соединение с базой данных
  • Освобождаются ресурсы, используемые соединением
  • Гарантируется, что любой поток, который в данный момент использует соединение, либо завершит работу, либо выбросит SQLException.

Вызов abort помечает соединение как закрытое и освобождает все ресурсы. Вызов abort для закрытого соединения ничего не делает.

Освобождение ресурсов, удерживаемых соединением, может занять продолжительное время. После возврата метода abort соединение будет помечено как закрытое, а Executor, переданный в качестве параметра методу abort, может всё ещё выполнять задачи по освобождению ресурсов.

Параметры:
executor - реализация Executor, которая будет использоваться методом abort.
Выбрасывает:
SQLException - если произошла ошибка доступа к базе данных или executor имеет значение null
Начиная с:
1.7
См. также:
  • Executor

setNetworkTimeout

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

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

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

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

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

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

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

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

getNetworkTimeout

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

beginRequest

default void beginRequest() throws SQLException
Уведомляет драйвер о начале запроса — независимой единицы работы — для этого соединения. Каждый запрос не зависит от всех остальных запросов в отношении состояния, локального для соединения на стороне клиента или сервера. Работа, выполняемая между парами beginRequest и endRequest, не зависит от какой-либо другой работы, выполненной в этом соединении, будь то часть другого запроса или работа вне запроса. Запрос может включать несколько транзакций. Возможны зависимости от зафиксированного состояния базы данных, поскольку оно не является локальным для соединения.

Локальным состоянием считается любое состояние, связанное с Connection и локальное для текущего Connection на стороне клиента или базы данных, которое нельзя прозрачно воспроизвести.

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

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

Рекомендуется заключать каждую единицу работы в пары beginRequest и endRequest так, чтобы в начале и конце запроса не было открытой транзакции и не было зависимости от локального состояния, пересекающей границы запросов. Зафиксированное состояние базы данных не является локальным.

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

Перед возвратом соединения вызывающему коду менеджер пула должен вызвать beginRequest для базового соединения.

Менеджеру пула не нужно вызывать beginRequest, если:

  • Пул соединений кэширует объекты PooledConnection
  • При вызове приложением getConnection возвращается дескриптор логического соединения
  • Логическое Connection закрывается вызовом Connection.close до возврата PooledConnection в кэш.
Требования к реализации:
Реализация по умолчанию ничего не делает.
Выбрасывает:
SQLException - если произошла ошибка
Начиная с:
9
См. также:
  • endRequest()
  • PooledConnection

endRequest

default void endRequest() throws SQLException
Уведомляет драйвер о завершении запроса — независимой единицы работы. Вызовы beginRequest и endRequest не являются вложенными. Несколько вызовов endRequest без промежуточного вызова beginRequest не считаются ошибкой. Первый вызов endRequest отмечает завершение запроса, а последующие вызовы не выполняют никаких действий. Если endRequest вызван без предварительного вызова beginRequest, он ничего не делает.

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

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

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

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

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

setShardingKeyIfValid

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

setShardingKeyIfValid

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

setShardingKey

default void setShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey) throws SQLException
Задаёт ключ сегментирования и суперключ сегментирования для использования с этим соединением
Примечание API:
Этот метод задаёт указанные ключи сегментирования, но не требует обращения к базе данных для проверки их допустимости для Connection.
Требования к реализации:
Реализация по умолчанию выбрасывает SQLFeatureNotSupportedException.
Параметры:
shardingKey - ключ сегментирования, задаваемый для этого соединения. Ключ сегментирования может иметь значение null
superShardingKey - суперключ сегментирования, задаваемый для этого соединения. Суперключ сегментирования может иметь значение null
Выбрасывает:
SQLException - если при задании ключей сегментирования произошла ошибка; если этот метод вызван для закрытого connection; или если указан superShardingKey без shardingKey
SQLFeatureNotSupportedException - если драйвер не поддерживает сегментирование
Начиная с:
9
См. также:
  • ShardingKey
  • ShardingKeyBuilder

setShardingKey

default void setShardingKey(ShardingKey shardingKey) throws SQLException
Задаёт ключ сегментирования для использования с этим соединением
Примечание API:
Этот метод задаёт указанный ключ сегментирования, но не требует обращения к базе данных для проверки его допустимости для Connection.
Требования к реализации:
Реализация по умолчанию выбрасывает SQLFeatureNotSupportedException.
Параметры:
shardingKey - ключ сегментирования, задаваемый для этого соединения. Ключ сегментирования может иметь значение null
Выбрасывает:
SQLException - если при задании ключа сегментирования произошла ошибка или этот метод вызван для закрытого connection
SQLFeatureNotSupportedException - если драйвер не поддерживает сегментирование
Начиная с:
9
См. также:
  • ShardingKey
  • ShardingKeyBuilder

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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