Spec-Zone.ru › OpenJDK 25

Интерфейс 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

Методы, объявленные в интерфейсе 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(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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.sql/javax/sql/DataSource.html

Spec-Zone.ru

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