Интерфейс подключения
- Все суперинтерфейсы:
- AutoCloseable, Wrapper
public interface Connection extends Wrapper, AutoCloseable
Подключение (сессия) к конкретной базе данных. SQL-запросы выполняются и результаты возвращаются в контексте подключения.
База данных объекта Connection способна предоставлять информацию, описывающую её таблицы, поддерживаемый SQL-синтаксис, хранимые процедуры, возможности данного подключения и так далее. Эта информация получается с помощью метода getMetaData.
Примечание: При конфигурировании Connection, приложения JDBC должны использовать соответствующий метод Connection, такой как setAutoCommit или setTransactionIsolation. Приложения не должны напрямую вызывать SQL-команды для изменения конфигурации подключения, если доступен метод JDBC. По умолчанию объект Connection находится в режиме автоматического подтверждения, что означает автоматическое подтверждение изменений после выполнения каждого запроса. Если режим автоматического подтверждения отключён, метод commit должен быть вызван явно для подтверждения изменений; в противном случае изменения в базе данных не будут сохранены.
Новый объект Connection, созданный с помощью ядра JDBC 2.1 API, имеет связанную с ним карту типов, изначально пустую. Пользователь может ввести пользовательское отображение для 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);
- См. также:
-
DriverManager.getConnection(java.lang.String, java.util.Properties),Statement,ResultSet,DatabaseMetaData
Краткое описание полей
| Модификатор и тип | Поле и описание |
|---|---|
static int |
TRANSACTION_NONE Константа, указывающая, что транзакции не поддерживаются. |
static int |
TRANSACTION_READ_COMMITTED Константа, указывающая, что грязные чтения предотвращены; невоспроизводимые чтения и призрачные чтения могут произойти. |
static int |
TRANSACTION_READ_UNCOMMITTED Константа, указывающая, что грязные чтения, невоспроизводимые чтения и призрачные чтения могут произойти. |
static int |
TRANSACTION_REPEATABLE_READ Константа, указывающая, что грязные чтения и невоспроизводимые чтения предотвращены; призрачные чтения могут произойти. |
static int |
TRANSACTION_SERIALIZABLE Константа, указывающая, что грязные чтения, невоспроизводимые чтения и призрачные чтения предотвращены. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
void |
abort(Executor executor) Закрывает открытое соединение. |
void |
clearWarnings() Очищает все предупреждения, сообщённые для этого объекта |
void |
close() Освобождает базу данных и ресурсы JDBC объекта |
void |
commit() Делает все изменения, внесённые с момента предыдущего фикса/отката, постоянными и освобождает все блокировки базы данных, которые в данный момент удерживает этот объект |
Array |
createArrayOf(String typeName,
Object[] elements) Метод-фабрика для создания объектов типа Array. |
Blob |
createBlob() Создаёт объект, реализующий интерфейс |
Clob |
createClob() Создаёт объект, реализующий интерфейс |
NClob |
createNClob() Создаёт объект, реализующий интерфейс |
SQLXML |
createSQLXML() Создаёт объект, реализующий интерфейс |
Statement |
createStatement() Создаёт объект |
Statement |
createStatement(int resultSetType,
int resultSetConcurrency) Создаёт объект |
Statement |
createStatement(int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) Создаёт объект |
Struct |
createStruct(String typeName,
Object[] attributes) Метод-фабрика для создания объектов Struct. |
boolean |
getAutoCommit() Возвращает текущий режим auto-commit для этого объекта |
String |
getCatalog() Возвращает текущее имя каталога для этого объекта |
Properties |
getClientInfo() Возвращает список, содержащий имя и текущее значение каждого свойства client info, поддерживаемого драйвером. |
String |
getClientInfo(String name) Возвращает значение свойства client info, заданного по имени. |
int |
getHoldability() Возвращает текущий holdability объектов |
DatabaseMetaData |
getMetaData() Возвращает объект |
int |
getNetworkTimeout() Возвращает количество миллисекунд, которое драйвер будет ждать завершения запроса к базе данных. |
String |
getSchema() Возвращает текущее имя схемы для этого объекта |
int |
getTransactionIsolation() Возвращает текущий уровень изоляции транзакции для этого объекта |
Map<String,Class<?>> |
getTypeMap() Возвращает объект |
SQLWarning |
getWarnings() Возвращает первое предупреждение, сообщённое вызовами в этом объекте |
boolean |
isClosed() Возвращает, был ли закрыт этот объект |
boolean |
isReadOnly() Возвращает, находится ли этот объект |
boolean |
isValid(int timeout) Возвращает true, если соединение не закрыто и всё ещё валидно. |
String |
nativeSQL(String sql) Преобразует данный SQL-запрос в собственный синтаксис SQL системы. |
CallableStatement |
prepareCall(String sql) Создаёт объект |
CallableStatement |
prepareCall(String sql,
int resultSetType,
int resultSetConcurrency) Создаёт объект |
CallableStatement |
prepareCall(String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) Создаёт объект |
PreparedStatement |
prepareStatement(String sql) Создаёт объект |
PreparedStatement |
prepareStatement(String sql,
int autoGeneratedKeys) Создаёт стандартный объект |
PreparedStatement |
prepareStatement(String sql,
int[] columnIndexes) Создаёт стандартный объект |
PreparedStatement |
prepareStatement(String sql,
int resultSetType,
int resultSetConcurrency) Создаёт объект |
PreparedStatement |
prepareStatement(String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) Создаёт объект |
PreparedStatement |
prepareStatement(String sql,
String[] columnNames) Создаёт стандартный объект |
void |
releaseSavepoint(Savepoint savepoint) Удаляет указанный объект |
void |
rollback() Отменяет все изменения, внесённые в текущей транзакции, и освобождает все блокировки базы данных, которые в данный момент удерживает этот объект |
void |
rollback(Savepoint savepoint) Отменяет все изменения, внесённые после того, как был установлен данный объект |
void |
setAutoCommit(boolean autoCommit) Устанавливает режим auto-commit соединения в заданное состояние. |
void |
setCatalog(String catalog) Устанавливает заданное имя каталога, чтобы выбрать подпространство базы данных этого объекта |
void |
setClientInfo(Properties properties) Устанавливает значения свойств client info соединения. |
void |
setClientInfo(String name,
String value) Устанавливает значение свойства client info, заданного по имени, на значение, заданное значением. |
void |
setHoldability(int holdability) Изменяет значение holdability по умолчанию для объектов |
void |
setNetworkTimeout(Executor executor,
int milliseconds) Устанавливает максимальный период ожидания объекта |
void |
setReadOnly(boolean readOnly) Переводит это соединение в режим только для чтения как подсказка драйверу для включения оптимизаций базы данных. |
Savepoint |
setSavepoint() Создаёт безымянный контрольный пункт в текущей транзакции и возвращает новый объект |
Savepoint |
setSavepoint(String name) Создаёт контрольный пункт с заданным именем в текущей транзакции и возвращает новый объект |
void |
setSchema(String schema) Устанавливает заданное имя схемы для доступа. |
void |
setTransactionIsolation(int level) Попытка изменить уровень изоляции транзакции для этого объекта |
void |
setTypeMap(Map<String,Class<?>> map) Устанавливает данный объект |
Методы, унаследованные от интерфейса java.sql.Wrapper
isWrapperFor, unwrap Поля
TRANSACTION_NONE
static final int TRANSACTION_NONE
Константа, указывающая, что транзакции не поддерживаются.
- См. также:
- Значения константных полей
TRANSACTION_READ_UNCOMMITTED
static final int TRANSACTION_READ_UNCOMMITTED
Константа, указывающая, что могут происходить грязные чтения, невоспроизводимые чтения и призрачные чтения. Этот уровень позволяет строке, изменённой одной транзакцией, быть прочитанной другой транзакцией до того, как любые изменения в этой строке будут подтверждены (т. н. «грязное чтение»). Если какие-либо изменения будут отменены, вторая транзакция получит недействительную строку.
- См. также:
- Значения константных полей
TRANSACTION_READ_COMMITTED
static final int TRANSACTION_READ_COMMITTED
Константа, указывающая, что грязные чтения предотвращены; могут происходить невоспроизводимые чтения и призрачные чтения. Этот уровень только запрещает транзакции читать строку с неподтверждёнными изменениями.
- См. также:
- Значения константных полей
TRANSACTION_REPEATABLE_READ
static final int TRANSACTION_REPEATABLE_READ
Константа, указывающая, что грязные чтения и невоспроизводимые чтения предотвращены; могут происходить призрачные чтения. Этот уровень запрещает транзакции читать строку с неподтверждёнными изменениями, а также предотвращает ситуацию, когда одна транзакция читает строку, вторая транзакция изменяет строку, а первая транзакция повторно читает строку, получая разные значения во второй раз (т. н. «невоспроизводимое чтение»).
- См. также:
- Значения константных полей
TRANSACTION_SERIALIZABLE
static final int TRANSACTION_SERIALIZABLE
Константа, указывающая, что грязные чтения, невоспроизводимые чтения и призрачные чтения предотвращены. Этот уровень включает запреты в TRANSACTION_REPEATABLE_READ и дополнительно запрещает ситуацию, когда одна транзакция читает все строки, удовлетворяющие условию WHERE, вторая транзакция вставляет строку, удовлетворяющую этому условию WHERE, а первая транзакция повторно считывает по этому же условию, получая дополнительную «призрачную» строку при повторном чтении.
- См. также:
- Значения константных полей
Методы
createStatement
Statement createStatement()
throws SQLException Создаёт объект Statement для отправки SQL-запросов в базу данных. SQL-запросы без параметров обычно выполняются с использованием объектов Statement. Если один и тот же SQL-запрос выполняется многократно, может быть эффективнее использовать объект PreparedStatement.
Наборы результатов, созданные с помощью возвращённого объекта Statement по умолчанию будут иметь тип TYPE_FORWARD_ONLY и уровень параллельности CONCUR_READ_ONLY. Возможность удержания созданных наборов результатов можно определить, вызвав getHoldability().
- Возвращает:
- новый стандартный объект
Statement - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод был вызван на закрытом соединении
prepareStatement
PreparedStatement prepareStatement(String sql)
throws SQLException Создаёт объект PreparedStatement для отправки параметризованных SQL-запросов в базу данных.
SQL-запрос с параметрами IN или без них может быть предварительно скомпилирован и сохранён в объекте PreparedStatement. Этот объект затем может использоваться для эффективного многократного выполнения этого запроса.
Примечание: Этот метод оптимизирован для обработки параметризованных SQL-запросов, которые выигрывают от предварительной компиляции. Если драйвер поддерживает предварительную компиляцию, метод prepareStatement отправит запрос в базу данных для предварительной компиляции. Некоторые драйверы могут не поддерживать предварительную компиляцию. В этом случае запрос может не быть отправлен в базу данных до выполнения объекта PreparedStatement. Это не имеет прямого влияния на пользователей; однако, это влияет на то, какие методы выбрасывают определённые объекты SQLException.
Наборы результатов, созданные с помощью возвращённого объекта PreparedStatement по умолчанию будут иметь тип TYPE_FORWARD_ONLY и уровень параллельности CONCUR_READ_ONLY. Возможность удержания созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql- SQL-запрос, который может содержать один или несколько заполнительных параметров IN '?' - Возвращает:
- новый стандартный объект
PreparedStatement, содержащий предварительно скомпилированный SQL-запрос - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод был вызван на закрытом соединении
prepareCall
CallableStatement prepareCall(String sql)
throws SQLException Создаёт объект CallableStatement для вызова хранимых процедур базы данных. Объект CallableStatement предоставляет методы для настройки параметров IN и OUT, а также методы для выполнения вызова хранимой процедуры.
Примечание: Этот метод оптимизирован для обработки вызовов хранимых процедур. Некоторые драйверы могут отправить запрос на вызов в базу данных, когда метод prepareCall завершён; другие могут подождать, пока объект CallableStatement не будет выполнен. Это не имеет прямого влияния на пользователей; однако, это влияет на то, какой метод выбрасывает определённые исключения SQLException.
Наборы результатов, созданные с помощью возвращённого объекта CallableStatement по умолчанию будут иметь тип TYPE_FORWARD_ONLY и уровень параллельности CONCUR_READ_ONLY. Возможность удержания созданных наборов результатов можно определить, вызвав getHoldability().
- Параметры:
-
sql- SQL-запрос, который может содержать один или несколько заполнительных параметров '?'. Обычно этот запрос указывается с использованием синтаксиса JDBC call escape. - Возвращает:
- новый стандартный объект
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- 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- SQLException, если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения
setCatalog
void setCatalog(String catalog)
throws SQLException Устанавливает заданное имя каталога, чтобы выбрать подпространство базы данных этого объекта Connection для работы.
Если драйвер не поддерживает каталоги, он проигнорирует этот запрос.
Вызов setCatalog не влияет на ранее созданные или подготовленные объекты Statement. Результат операции prepare DBMS в момент вызова метода Connection prepareStatement или prepareCall определяется реализацией. Для максимальной переносимости, setCatalog должен быть вызван перед созданием или подготовкой Statement.
- Параметры:
-
catalog- имя каталога (подпространства в базе данных этого объектаConnectionдля работы) - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
getCatalog()
getCatalog
String getCatalog()
throws SQLException Возвращает текущее имя каталога этого объекта Connection.
- Возвращает:
- текущее имя каталога или
null, если его нет - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или этот метод вызван для закрытого соединения - См. также:
setCatalog(java.lang.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- 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. Если приложение не добавило запись, возвращаемая карта типов будет пустой.
Вы должны вызвать setTypeMap после внесения изменений в объект Map, возвращённый методом getTypeMap, так как драйвер 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(java.util.Map<java.lang.String, java.lang.Class<?>>)
setTypeMap
void setTypeMap(Map<String,Class<?>> map)
throws SQLException Устанавливает заданный объект TypeMap в качестве карты типов для этого объекта Connection. Карта типов будет использоваться для пользовательского сопоставления SQL-структурированных типов и различных типов.
Вы должны установить значения для TypeMap перед вызовом setMap, так как драйвер JDBC может создать внутреннюю копию объекта TypeMap:
Map myMap<String,Class<?>> = new HashMap<String,Class<?>>();
myMap.put("mySchemaName.ATHLETES", Athletes.class);
con.setTypeMap(myMap);
- Параметры:
-
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- строка, содержащая имя контрольного пункта - Возвращает:
- новый объект
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 с типом SQL JDBC по умолчанию, определенным в java.sql.Types для данного класса Object. Сопоставление по умолчанию указано в приложении B спецификации JDBC. Если полученный тип JDBC не является соответствующим типом для данного typeName, то поведение, выбрасывается ли SQLException или драйвер поддерживает ли преобразование, является реализацией-специфичным.
- Параметры:
-
typeName- имя SQL типа, к которому сопоставляются элементы массива. Имя типа является специфичным для базы данных именем, которое может быть именем встроенного типа, пользовательского типа или стандартного типа 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 объекты. Определяется реализацией, происходит ли операция подготовки DBMS немедленно при вызове метода Connection или prepareCall. Для максимальной переносимости, следует вызвать setSchema до создания или подготовки Statement.
- Параметры:
-
schema— имя схемы, в которой нужно работать - Выбрасывает:
-
SQLException— если возникает ошибка доступа к базе данных или метод вызывается на закрытом соединении - С:
- 1.7
- См. также:
getSchema()
getSchema
String getSchema()
throws SQLException Возвращает текущее имя схемы этого объекта Connection.
- Возвращает:
- текущее имя схемы или
null, если его нет - Выбрасывает:
-
SQLException— если возникает ошибка доступа к базе данных или метод вызывается на закрытом соединении - С:
- 1.7
- См. также:
setSchema(java.lang.String)
abort
void abort(Executor executor)
throws SQLException Прерывает открытое соединение. Вызов abort приводит к следующему:
- Соединение помечается как закрытое
- Закрывает любое физическое соединение с базой данных
- Освобождает ресурсы, используемые соединением
- Гарантирует, что любой поток, в данный момент использующий соединение, либо завершит работу, либо бросит исключение
SQLException.
Вызов abort помечает соединение как закрытое и освобождает все ресурсы. Вызов abort на закрытом соединении является бесполезной операцией.
Возможна задержка при прерывании и освобождении ресурсов, удерживаемых соединением. По завершении метода abort, соединение будет помечено как закрытое, а Executor, переданный в качестве параметра методу abort, может всё ещё выполнять задачи по освобождению ресурсов.
Этот метод проверяет наличие объекта SQLPermission перед выполнением. Если объект SecurityManager существует и его метод checkPermission запрещает вызов abort, этот метод генерирует исключение java.lang.SecurityException.
- Параметры:
-
executor— реализацияExecutor, которая будет использоватьсяabort. - Выбрасывает:
-
SQLException— если возникает ошибка доступа к базе данных, или объектexecutorнаходится в состоянииnull -
SecurityException— если существует менеджер безопасности и его методcheckPermissionзапрещает вызовabort - С:
- 1.7
- См. также:
-
SecurityManager.checkPermission(java.security.Permission),Executor
setNetworkTimeout
void setNetworkTimeout(Executor executor,
int milliseconds)
throws SQLException Устанавливает максимальный период ожидания ответа базы данных для Connection или объектов, созданных из Connection. Если какой-либо запрос останется без ответа, метод ожидания вернет SQLException, а Connection или объекты, созданные из Connection, будут помечены как закрытые. Любое последующее использование объектов, за исключением методов close, isClosed или Connection.isValid, приведёт к SQLException.
Примечание: Этот метод предназначен для решения редкой, но серьёзной проблемы, когда сетевые разделения могут заблокировать потоки, выполняющие вызовы JDBC в операциях чтения сокета до тех пор, пока не закончится TCP-TIMEOUT операционной системы (обычно 10 минут). Этот метод связан с методом abort() , который предоставляет администраторскому потоку способ освободить такие потоки в случае, если JDBC-соединение доступно администраторскому потоку. Метод setNetworkTimeout охватывает случаи, когда администраторского потока нет или он не имеет доступа к соединению. Этот метод имеет серьёзные последствия и должен быть задан с достаточно высоким значением, чтобы он никогда не срабатывал раньше других таймаутов, таких как таймауты транзакций.
Реализации JDBC-драйверов также могут поддерживать метод setNetworkTimeout для ограничения времени ответа базы данных в средах без сети.
Драйверы могут реализовывать некоторые или все свои вызовы API с помощью нескольких внутренних передач драйвер-база данных, и предоставлена возможность определить, будет ли ограничение применяться всегда к ответу на вызов API или к любому отдельному запросу во время вызова API.
Этот метод можно вызывать более одного раза, например, для установки ограничения для области кода JDBC и сброса до значения по умолчанию при выходе из этой области. Вызов этого метода не влияет на уже имеющиеся запросы.
Таймаут Statement.setQueryTimeout() независим от таймаута, заданного в setNetworkTimeout. Если таймаут запроса истекает до истечения таймаута сети, выполнение запроса отменяется. Если сеть по-прежнему активна, результат заключается в том, что запрос и соединение по-прежнему пригодны для использования. Однако, если таймаут сети истекает до таймаута запроса или если таймаут запроса завершается неудачей из-за проблем с сетью, соединение будет помечено как закрытое, все ресурсы, удерживаемые соединением, будут освобождены, и как соединение, так и запрос станут непригодными для использования.
Когда драйвер определит, что таймаут setNetworkTimeout истек, JDBC-драйвер отмечает соединение как закрытое и освобождает все ресурсы, удерживаемые соединением.
Этот метод проверяет наличие объекта SQLPermission перед выполнением. Если объект SecurityManager существует и его метод checkPermission запрещает вызов abort, этот метод генерирует исключение java.lang.SecurityException.
- Параметры:
-
executor— реализацияExecutor, которая будет использоватьсяsetNetworkTimeout. -
milliseconds— время в миллисекундах, которое нужно подождать, пока операция базы данных завершится. Если JDBC-драйвер не поддерживает миллисекунды, JDBC-драйвер округляет значение до ближайшей секунды. Если период таймаута истекает до завершения операции, будет сгенерировано исключение SQLException. Значение 0 указывает, что нет таймаута для операций базы данных. - Выбрасывает:
-
SQLException— если возникает ошибка доступа к базе данных, метод вызывается на закрытом соединении, объектexecutorнаходится в состоянииnull, или значение, указанное дляseconds, меньше 0. -
SecurityException— если существует менеджер безопасности и его методcheckPermissionзапрещает вызовsetNetworkTimeout. -
SQLFeatureNotSupportedException— если JDBC-драйвер не поддерживает этот метод - С:
- 1.7
- См. также:
-
SecurityManager.checkPermission(java.security.Permission),Statement.setQueryTimeout(int),getNetworkTimeout(),abort(java.util.concurrent.Executor),Executor
getNetworkTimeout
int getNetworkTimeout()
throws SQLException Возвращает количество миллисекунд, которое драйвер будет ждать завершения запроса к базе данных. Если ограничение превышено, выбрасывается SQLException.
- Возвращает:
- текущее ограничение таймаута в миллисекундах; ноль означает отсутствие ограничения
- Выбрасывает:
-
SQLException— если возникает ошибка доступа к базе данных или метод вызывается на закрытомConnection -
SQLFeatureNotSupportedException— если JDBC-драйвер не поддерживает этот метод - С:
- 1.7
- См. также:
setNetworkTimeout(java.util.concurrent.Executor, int)
© 1993, 2020, 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.