Spec-Zone.ru › OpenJDK 24

Интерфейс 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 должна включать публичный конструктор без аргументов.

C момента:
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 таймаут входа в систему изначально равен 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, 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://download.java.net/java/early_access/jdk24/docs/api/java.sql/javax/sql/DataSource.html

Spec-Zone.ru

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