Spec-Zone.ru › OpenJDK 27

Интерфейс 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)
  • 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()
Уведомляет драйвер о завершении запроса — независимой единицы работы.
default String enquoteIdentifier(String identifier, boolean alwaysDelimit)
Возвращает simple SQL identifier или идентификатор с разделителями.
default String enquoteLiteral(String val)
Возвращает String, заключённый в одинарные кавычки.
default String enquoteNCharLiteral(String val)
Возвращает String, представляющий литерал национального набора символов, заключённый в одинарные кавычки и имеющий префикс в виде заглавной буквы N.
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 в режиме «только для чтения».
default boolean isSimpleIdentifier(String identifier)
Возвращает информацию о том, является ли identifier простым идентификатором SQL.
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)
Задаёт shardingKey для использования с этим соединением Connection
default void setShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey)
Задаёт shardingKey и superShardingKey для использования с этим соединением Connection
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
Модификатор и тип Метод Описание
boolean isWrapperFor(Class<?> iface)
Возвращает true, если этот объект реализует интерфейс, переданный в качестве аргумента, либо прямо или косвенно является оболочкой объекта, который его реализует.
<T> T unwrap(Class<T> iface)
Возвращает объект, реализующий указанный интерфейс, чтобы обеспечить доступ к нестандартным методам или стандартным методам, не предоставляемым прокси-объектом.

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

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. Это непосредственно не влияет на пользователей, однако влияет на то, какой метод выбрасывает определённые исключения SQL.

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

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

nativeSQL

String nativeSQL(String sql) throws SQLException
Преобразует заданную инструкцию SQL в собственный синтаксис SQL системы. Драйвер может преобразовать синтаксис SQL JDBC в собственный синтаксис SQL системы перед отправкой инструкции. Этот метод возвращает собственную форму инструкции, которую отправил бы драйвер.
Параметры:
sql — инструкция SQL, которая может содержать один или несколько заполнителей параметров «?»
Возвращает:
собственную форму этой инструкции
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения

setAutoCommit

void setAutoCommit(boolean autoCommit) throws SQLException
Задаёт для этого соединения режим автоподтверждения в соответствии с указанным состоянием. Если соединение находится в режиме автоподтверждения, все его инструкции SQL выполняются и фиксируются как отдельные транзакции. В противном случае инструкции SQL группируются в транзакции, которые завершаются вызовом метода commit или метода rollback. По умолчанию новые соединения находятся в режиме автоподтверждения.

Фиксация происходит после завершения инструкции. Момент завершения инструкции зависит от типа инструкции SQL:

  • Для инструкций DML, таких как Insert, Update или Delete, и инструкций DDL инструкция завершается сразу после окончания её выполнения.
  • Для инструкций Select инструкция завершается после закрытия связанного результирующего набора.
  • Для объектов CallableStatement или инструкций, возвращающих несколько результатов, инструкция завершается после закрытия всех связанных результирующих наборов и получения всех счётчиков обновлений и выходных параметров.

ПРИМЕЧАНИЕ: Если этот метод вызван во время транзакции и режим автоподтверждения изменён, транзакция фиксируется. Если вызывается setAutoCommit и режим автоподтверждения не меняется, вызов не выполняет никаких действий.

Параметры:
autoCommit — true для включения режима автоподтверждения; false для его отключения
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных, setAutoCommit(true) вызван во время участия в распределённой транзакции или этот метод вызван для закрытого соединения
См. также:
  • getAutoCommit()

getAutoCommit

boolean getAutoCommit() throws SQLException
Возвращает текущий режим автоподтверждения для этого объекта Connection.
Возвращает:
текущее состояние режима автоподтверждения этого объекта Connection
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
См. также:
  • setAutoCommit(boolean)

commit

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

rollback

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

close

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

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

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

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

isClosed

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

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

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

getMetaData

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

setReadOnly

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

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

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

isReadOnly

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

setCatalog

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

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

Вызов setCatalog не влияет на ранее созданные или подготовленные объекты Statement. Определение того, выполняется ли операция подготовки DBMS сразу при вызове метода Connection, 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. Карта типов будет использоваться для пользовательского сопоставления структурированных типов SQL и отдельных типов.

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

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

setHoldability

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

getHoldability

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

setSavepoint

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

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

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

setSavepoint

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

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

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

rollback

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

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

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

releaseSavepoint

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

createStatement

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

prepareStatement

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

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

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

prepareCall

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

prepareStatement

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

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

По умолчанию наборы результатов, созданные с помощью возвращенного объекта 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. Это напрямую не влияет на пользователей, однако влияет на то, какие методы выбрасывают определенные исключения SQLExceptions.

По умолчанию наборы результатов, созданные с помощью возвращенного объекта 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. Это напрямую не влияет на пользователей, однако влияет на то, какие методы выбрасывают определенные исключения SQLExceptions.

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

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

createClob

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

createBlob

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

createNClob

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

createSQLXML

SQLXML createSQLXML() throws SQLException
Создает объект, реализующий интерфейс SQLXML. Возвращаемый объект изначально не содержит данных. Для добавления данных в объект SQLXML можно использовать объект createXmlStreamWriter и метод setString интерфейса 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 на тип SQL JDBC по умолчанию, определённый в 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

enquoteLiteral

default String enquoteLiteral(String val) throws SQLException
Возвращает String, заключённый в одинарные кавычки. Каждая одинарная кавычка в строке заменяется двумя одинарными кавычками.
Примеры преобразования:
Значение Результат
Hello 'Hello'
G'Day 'G''Day'
'G''Day' '''G''''Day'''
I'''M 'I''''''M'
Требования к реализации:
Реализация по умолчанию создаёт литерал следующим образом: "'" + val.replace("'", "''") + "'".
Примечание к реализации:
Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
Параметры:
val — строка символов
Возвращает:
строку в одинарных кавычках, в которой каждая одинарная кавычка заменена двумя одинарными кавычками
Выбрасывает:
NullPointerException — если val имеет значение null
SQLException — если произошла ошибка доступа к базе данных
Начиная с версии:
26

enquoteIdentifier

default String enquoteIdentifier(String identifier, boolean alwaysDelimit) throws SQLException
Возвращает simple SQL identifier или идентификатор с разделителями. Идентификатор с разделителями представляет имя объекта базы данных, например таблицы, столбца или представления, заключённое в разделители, которыми обычно служат двойные кавычки, как определено стандартом SQL.

Если identifier является простым идентификатором SQL:

  • Если alwaysDelimit имеет значение false, возвращается исходное значение
  • если alwaysDelimit имеет значение true, исходное значение заключается в кавычки и возвращается как идентификатор с разделителями
Если identifier не является простым идентификатором SQL, возвращаемый идентификатор с разделителями identifier должен быть заключён в разделители, возвращаемые методом DatabaseMetaData.getIdentifierQuoteString(). Если источник данных не поддерживает идентификаторы с разделителями, выбрасывается SQLFeatureNotSupportedException.

SQLException будет выброшено, если identifier содержит недопустимые символы в идентификаторе с разделителями или длина идентификатора недопустима для источника данных.

Требования к реализации:
Реализация по умолчанию использует следующие критерии для определения допустимого простого идентификатора SQL:
  • Строка не заключена в двойные кавычки
  • Первый символ является буквой латинского алфавита от a ('\0061') до z ('\u007A') или от A ('\u0041') до Z ('\u005A')
  • Имя содержит только буквенно-цифровые символы ([0-9A-Za-z]) или символ "_"
Реализация по умолчанию выбрасывает SQLException, если:
  • DatabaseMetaData.getIdentifierQuoteString() возвращает не двойную кавычку
  • identifier содержит символ null или двойную кавычку
  • Длина identifier меньше 1 или больше 128 символов
Примеры преобразования:
Идентификатор Всегда заключать в разделители Результат
Hello false Hello
Hello true "Hello"
G'Day false "G'Day"
"Bruce Wayne" false "Bruce Wayne"
"Bruce Wayne" true "Bruce Wayne"
"select" false "select"
"select" true "select"
GoodDay$ false "GoodDay$"
Hello"World false SQLException
"Hello"World" false SQLException
Примечание к реализации:
Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям базового источника данных.
Параметры:
identifier — идентификатор SQL
alwaysDelimit — указывает, следует ли возвращать простой идентификатор SQL как идентификатор с разделителями
Возвращает:
простой идентификатор SQL или идентификатор с разделителями
Выбрасывает:
SQLException — если identifier не является допустимым идентификатором
SQLFeatureNotSupportedException — если источник данных не поддерживает идентификаторы с разделителями
NullPointerException — если identifier имеет значение null
Начиная с версии:
26

isSimpleIdentifier

default boolean isSimpleIdentifier(String identifier) throws SQLException
Возвращает, является ли identifier простым идентификатором SQL. Простой идентификатор SQL в стандарте SQL называется обычным идентификатором. Обычный идентификатор представляет собой имя объекта базы данных, например таблицы, столбца или представления.

Правила для обычного идентификатора:

  • Первый символ — алфавитный символ от a ('\u0061') до z ('\u007A') или от A ('\u0041') до Z ('\u005A')
  • Имя содержит только буквенно-цифровые символы ([0-9A-Za-z]) или символ «_»
  • Это не зарезервированное слово SQL

Для обычного идентификатора источник данных может задавать дополнительные правила, например:

  • Поддержка дополнительных символов в имени с учетом используемого языкового стандарта
  • Поддержка другой максимальной длины идентификатора
Требования к реализации:
Реализация по умолчанию использует следующие критерии, чтобы определить, является ли идентификатор простым идентификатором SQL:
  • Идентификатор не заключен в двойные кавычки
  • Первый символ — алфавитный символ от a до z или от A до Z
  • Идентификатор содержит только буквенно-цифровые символы ([0-9A-Za-z]) или символ «_»
  • Идентификатор не является зарезервированным словом SQL
  • Длина идентификатора составляет от 1 до 128 символов включительно
Примеры преобразования:
идентификатор Простой идентификатор
Hello true
G'Day false
"Bruce Wayne" false
GoodDay$ false
Hello"World false
"Hello"World" false
"select" false
"from" false
Примечание по реализации:
Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям используемого источника данных.
Параметры:
identifier — идентификатор SQL
Возвращает:
true, если это простой идентификатор SQL; в противном случае — false
Вызывает:
NullPointerException — если идентификатор — null
SQLException — если произошла ошибка доступа к базе данных
Начиная с версии:
26

enquoteNCharLiteral

default String enquoteNCharLiteral(String val) throws SQLException
Возвращает String, представляющее литерал национального набора символов, заключенный в одинарные кавычки и снабженный префиксом в виде заглавной буквы N. Каждая одинарная кавычка в строке заменяется двумя одинарными кавычками.
Примеры преобразования:
Значение Результат
Hello N'Hello'
G'Day N'G''Day'
'G''Day' N'''G''''Day'''
I'''M N'I''''''M'
N'Hello' N'N''Hello'''
Требования к реализации:
Реализация по умолчанию создает литерал следующим образом: "N'" + val.replace("'", "''") + "'".
Примечание по реализации:
Реализациям драйверов JDBC может потребоваться собственная реализация этого метода, чтобы соответствовать требованиям используемого источника данных. Реализация enquoteNCharLiteral может принимать набор символов, отличный от набора, который принимает реализация enquoteLiteral того же драйвера.
Параметры:
val — строка символов
Возвращает:
результат замены каждого одинарного символа кавычки в аргументе двумя одинарными кавычками; перед всей полученной строкой добавляется «N».
Вызывает:
NullPointerException — если val — null
SQLException — если произошла ошибка доступа к базе данных
Начиная с версии:
26

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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