Spec-Zone.ru › OpenJDK 17

Интерфейс DataSource

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

Фабрика для подключений к физическому источнику данных, который представляет этот объект DataSource. Альтернатива DriverManager механизму, объект DataSource является предпочтительным способом получения подключения. Объект, реализующий интерфейс DataSource, обычно регистрируется в службе именования на основе API Java Naming and Directory (JNDI).

Интерфейс DataSource реализуется поставщиком драйвера. Существует три типа реализаций:

  1. Базовая реализация — генерирует стандартный объект Connection
  2. Реализация пулинга подключений — генерирует объект Connection, который автоматически будет участвовать в пулинге подключений. Эта реализация работает с менеджером пулинга подключений уровня middleware.
  3. Реализация распределенных транзакций — генерирует объект Connection , который может использоваться для распределенных транзакций и почти всегда участвует в пулинге подключений. Эта реализация работает с менеджером транзакций уровня middleware и практически всегда с менеджером пулинга подключений.

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

Драйвер, к которому осуществляется доступ через объект DataSource , не регистрируется в DriverManager. Вместо этого объект DataSource извлекается с помощью операции поиска, а затем используется для создания объекта Connection. При базовой реализации подключение, полученное через объект DataSource , идентично подключению, полученному через DriverManager механизм.

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

С:
1.4

Краткое описание методов

Модификатор и тип Метод Описание
default ConnectionBuilder createConnectionBuilder()
Создает новый экземпляр ConnectionBuilder
Connection getConnection()
Попытка установить подключение к источнику данных, который представляет этот объект DataSource.
Connection getConnection(String username, String password)
Попытка установить подключение к источнику данных, который представляет этот объект DataSource.
int getLoginTimeout()
Возвращает максимальное время в секундах, которое этот источник данных может ждать во время попытки подключения к базе данных.
PrintWriter getLogWriter()
Получает запись журнала для этого объекта DataSource.
void setLoginTimeout(int seconds)
Устанавливает максимальное время в секундах, которое этот источник данных будет ждать во время попытки подключения к базе данных.
void setLogWriter(PrintWriter out)
Устанавливает запись журнала для этого объекта DataSource в указанный объект java.io.PrintWriter.

Методы, объявленные в интерфейсе 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 таймаут входа в систему изначально равен нулю.

Указано:
setLoginTimeout в интерфейсе CommonDataSource
Параметры:
seconds - лимит времени входа в систему источника данных
Исключения:
SQLException - если произошла ошибка доступа к базе данных.
С:
1.4
См. также:
  • CommonDataSource.getLoginTimeout()

getLoginTimeout

int getLoginTimeout() throws SQLException
Получает максимальное время в секундах, которое этот источник данных может ждать во время попытки подключения к базе данных. Значение 0 означает, что таймаут — это системный таймаут по умолчанию, если он существует; в противном случае — что таймаут отсутствует. При создании объекта DataSource таймаут входа в систему изначально равен нулю.
Указано:
getLoginTimeout в интерфейсе CommonDataSource
Возвращает:
лимит времени входа в систему источника данных
Исключения:
SQLException - если произошла ошибка доступа к базе данных.
С:
1.4
См. также:
  • CommonDataSource.setLoginTimeout(int)

createConnectionBuilder

default ConnectionBuilder createConnectionBuilder() throws SQLException
Создает новый экземпляр ConnectionBuilder
Требования к реализации:
Реализация по умолчанию выбросит исключение SQLFeatureNotSupportedException
Возвращает:
Экземпляр ConnectionBuilder, который был создан
Исключения:
SQLException - если произошла ошибка при создании билдера
SQLFeatureNotSupportedException - если драйвер не поддерживает фрагментацию
С:
9
См. также:
  • ConnectionBuilder

© 1993, 2021, 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/17/docs/api/java.sql/javax/sql/DataSource.html

Spec-Zone.ru

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