Spec-Zone.ru › OpenJDK 27

Интерфейс DataSource

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

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

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

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

Объект 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.

Методы, объявленные в интерфейсе CommonDataSource

createShardingKeyBuilder, getParentLogger
Модификатор и тип Метод Описание
default ShardingKeyBuilder createShardingKeyBuilder()
Создает новый экземпляр ShardingKeyBuilder
Logger getParentLogger()
Возвращает родительский Logger всех Logger, используемых этим источником данных.

Методы, объявленные в интерфейсе Wrapper

isWrapperFor, unwrap
Модификатор и тип Метод Описание
boolean isWrapperFor(Class<?> iface)
Возвращает true, если этот объект реализует интерфейс, переданный в качестве аргумента, или прямо либо косвенно является оберткой объекта, который его реализует.
<T> T unwrap(Class<T> iface)
Возвращает объект, реализующий указанный интерфейс, чтобы обеспечить доступ к нестандартным методам или стандартным методам, не предоставляемым прокси-объектом.

Подробное описание методов

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(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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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