Интерфейс DataSource
- Все суперинтерфейсы:
-
CommonDataSource,Wrapper
public interface DataSource extends CommonDataSource, Wrapper
Фабрика для подключений к физическому источнику данных, который представляет этот DataSource объект. В качестве альтернативы DriverManager механизму, DataSource объект является предпочтительным способом получения подключения. Объект, реализующий интерфейс DataSource , как правило, регистрируется в службе именования на основе API Java™ Naming and Directory (JNDI).
Интерфейс DataSource реализуется поставщиком драйвера. Существует три типа реализаций:
- Базовая реализация — производит стандартный
Connectionобъект - Реализация пулинга подключений — производит
Connectionобъект, который автоматически будет участвовать в пулинге подключений. Эта реализация работает с менеджером пулинга подключений среднего уровня. - Реализация распределённых транзакций — производит
Connectionобъект, который может использоваться для распределённых транзакций и почти всегда участвует в пулинге подключений. Эта реализация работает с менеджером транзакций среднего уровня и почти всегда с менеджером пулинга подключений.
DataSource объект имеет свойства, которые можно изменять при необходимости. Например, если источник данных перемещён на другой сервер, можно изменить свойство сервера. Преимущество заключается в том, что поскольку свойства источника данных могут быть изменены, любой код, обращающийся к этому источнику данных, не нужно изменять.
Драйвер, к которому осуществляется доступ через DataSource объект, не регистрируется в DriverManager. Вместо этого DataSource объект извлекается с помощью операции поиска и затем используется для создания Connection объекта. При базовой реализации подключение, полученное через DataSource объект, идентично подключению, полученному через DriverManager механизм.
Реализация DataSource должна включать публичный конструктор без аргументов.
- С:
- 1.4
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
default ConnectionBuilder |
createConnectionBuilder() |
Создать новый |
Connection |
getConnection() |
Попытка установить подключение к источнику данных, который представляет этот |
Connection |
getConnection(String username,
String password) |
Попытка установить подключение к источнику данных, который представляет этот |
int |
getLoginTimeout() |
Получить максимальное время в секундах, которое этот источник данных может ждать при попытке подключения к базе данных. |
PrintWriter |
getLogWriter() |
Получить запись журнала для этого |
void |
setLoginTimeout(int seconds) |
Установить максимальное время в секундах, которое этот источник данных будет ждать при попытке подключения к базе данных. |
void |
setLogWriter(PrintWriter out) |
Установить запись журнала для этого |
Методы, объявленные в интерфейсе javax.sql.CommonDataSource
createShardingKeyBuilder, getParentLogger
Методы, объявленные в интерфейсе java.sql.Wrapper
isWrapperFor, unwrap
Методы
getConnection
Connection getConnection()
throws SQLException
Попытка установить подключение к источнику данных, который представляет этот DataSource объект.
- Возвращает:
- подключение к источнику данных
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных -
SQLTimeoutException- когда драйвер определил, что время ожидания, указанное методомsetLoginTimeout, истекло, и, по крайней мере, попытался отменить текущую попытку подключения к базе данных
getConnection
Connection getConnection(String username,
String password)
throws SQLException
Попытка установить подключение к источнику данных, который представляет этот DataSource объект.
- Параметры:
-
username- пользователь базы данных, от имени которого создается подключение -
password- пароль пользователя - Возвращает:
- подключение к источнику данных
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных -
SQLTimeoutException- когда драйвер определил, что время ожидания, указанное методомsetLoginTimeout, истекло, и, по крайней мере, попытался отменить текущую попытку подключения к базе данных - С:
- 1.4
getLogWriter
PrintWriter getLogWriter()
throws SQLException
Получает запись журнала для этого DataSource объекта.
Запись журнала — это символьный выходной поток, в который будут выводиться все сообщения регистрации и отладки для этого источника данных. Это включает сообщения, напечатанные методами этого объекта, сообщения, напечатанные методами других объектов, созданных этим объектом, и так далее. Сообщения, напечатанные в журнале, специфичном для источника данных, не выводятся в журнал, связанный с классом java.sql.DriverManager. При создании DataSource объекта запись журнала изначально равна null; другими словами, по умолчанию регистрация отключена.
- Определено в:
-
getLogWriterв интерфейсеCommonDataSource - Возвращает:
- запись журнала для этого источника данных или null, если регистрация отключена
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных - С:
- 1.4
- См. также:
CommonDataSource.setLogWriter(java.io.PrintWriter)
setLogWriter
void setLogWriter(PrintWriter out)
throws SQLException
Устанавливает запись журнала для этого DataSource объекта в данный java.io.PrintWriter объект.
Запись журнала — это символьный выходной поток, в который будут выводиться все сообщения регистрации и отладки для этого источника данных. Это включает сообщения, напечатанные методами этого объекта, сообщения, напечатанные методами других объектов, созданных этим объектом, и так далее. Сообщения, напечатанные в журнале, специфичном для источника данных, не выводятся в журнал, связанный с классом java.sql.DriverManager. При создании DataSource объекта запись журнала изначально равна null; другими словами, по умолчанию регистрация отключена.
- Определено в:
-
setLogWriterв интерфейсеCommonDataSource - Параметры:
-
out- новая запись журнала; для отключения регистрации установите значение null - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных - С:
- 1.4
- См. также:
CommonDataSource.getLogWriter()
setLoginTimeout
void setLoginTimeout(int seconds)
throws SQLException
Устанавливает максимальное время в секундах, которое этот источник данных будет ждать при попытке подключения к базе данных. Значение 0 указывает, что время ожидания равно значению по умолчанию системы, если оно есть; в противном случае указывает, что нет времени ожидания. При создании DataSource объекта время ожидания входа в систему изначально равно 0.
- Определено в:
-
setLoginTimeoutв интерфейсеCommonDataSource - Параметры:
-
seconds- лимит времени входа в систему источника данных - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных. - С:
- 1.4
- См. также:
CommonDataSource.getLoginTimeout()
getLoginTimeout
int getLoginTimeout()
throws SQLException
Получает максимальное время в секундах, которое этот источник данных может ждать при попытке подключения к базе данных. Значение 0 означает, что время ожидания равно значению по умолчанию системы, если оно есть; в противном случае означает, что нет времени ожидания. При создании DataSource объекта время ожидания входа в систему изначально равно 0.
- Определено в:
-
getLoginTimeoutв интерфейсеCommonDataSource - Возвращает:
- лимит времени входа в систему источника данных
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных. - С:
- 1.4
- См. также:
CommonDataSource.setLoginTimeout(int)
createConnectionBuilder
default ConnectionBuilder createConnectionBuilder()
throws SQLException
Создать новый ConnectionBuilder экземпляр
- Требования к реализации:
- Реализация по умолчанию выбросит
SQLFeatureNotSupportedException - Возвращает:
- Экземпляр ConnectionBuilder, который был создан
- Исключения:
-
SQLException- если произошла ошибка при создании билдера -
SQLFeatureNotSupportedException- если драйвер не поддерживает фрагментацию - С:
- 9
- См. также:
ConnectionBuilder
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/javax/sql/DataSource.html