Класс DriverManager

public class DriverManager
extends Object

Основной сервис для управления набором драйверов JDBC.

ПРИМЕЧАНИЕ: Интерфейс DataSource предоставляет другой способ подключения к источнику данных. Использование объекта DataSource является предпочтительным способом подключения к источнику данных.

В рамках своей инициализации класс DriverManager попытается загрузить доступные драйверы JDBC, используя:

  • Свойство jdbc.drivers системы, содержащее список, разделенный двоеточием, полностью квалифицированных имён классов драйверов JDBC. Каждый драйвер загружается с помощью системного загрузчика классов system class loader:
    • jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver
  • Поставщиков сервисов класса java.sql.Driver, которые загружаются с помощью механизма загрузки поставщиков сервисов service-provider loading.
Примечание реализации:
DriverManager инициализация выполняется лениво и ищет поставщиков сервисов, используя загрузчик классов контекста потока. Загруженные и доступные приложению драйверы будут зависеть от загрузчика классов контекста потока потока, который инициирует инициализацию драйвера с помощью DriverManager.

Когда вызывается метод getConnection, DriverManager попытается найти подходящий драйвер среди загруженных при инициализации и тех, что загружены явно с использованием того же загрузчика классов, что и текущее приложение.

С тех пор:
1.1
См. также:
Driver, Connection

Методы

Модификатор и тип Метод Описание
static void deregisterDriver​(Driver driver)

Удаляет указанный драйвер из списка зарегистрированных драйверов DriverManager.

static Stream<Driver> drivers()

Возвращает поток со всеми текущими загруженными драйверами JDBC, к которым у текущего вызывающего есть доступ.

static Connection getConnection​(String url)

Попытка установить соединение с указанной базой данных URL.

static Connection getConnection​(String url, String user, String password)

Попытка установить соединение с указанной базой данных URL.

static Connection getConnection​(String url, Properties info)

Попытка установить соединение с указанной базой данных URL.

static Driver getDriver​(String url)

Попытка найти драйвер, который понимает данный URL.

static Enumeration<Driver> getDrivers()

Возвращает перечисление со всеми текущими загруженными драйверами JDBC, к которым у текущего вызывающего есть доступ.

static int getLoginTimeout()

Получает максимальное время в секундах, которое драйвер может ждать при попытке входа в базу данных.

static PrintStream getLogStream()

Устарело.

Используйте getLogWriter

static PrintWriter getLogWriter()

Возвращает записыватель журнала.

static void println​(String message)

Выводит сообщение в текущий поток журнала JDBC.

static void registerDriver​(Driver driver)

Регистрирует указанный драйвер в DriverManager.

static void registerDriver​(Driver driver, DriverAction da)

Регистрирует указанный драйвер в DriverManager.

static void setLoginTimeout​(int seconds)

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

static void setLogStream​(PrintStream out)

Устарело.

Используйте setLogWriter

static void setLogWriter​(PrintWriter out)

Устанавливает объект логгирования/отслеживания PrintWriter, используемый классом DriverManager и всеми драйверами.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы

getLogWriter

public static PrintWriter getLogWriter()

Извлекает средство записи логов. Вместо устаревших методов get/setlogStream следует использовать методы getLogWriter и setLogWriter.

Возвращает:
объект java.io.PrintWriter
С версии:
1.2
См. также:
setLogWriter(java.io.PrintWriter)

setLogWriter

public static void setLogWriter(PrintWriter out)

Устанавливает объект PrintWriter для ведения журнала/трассировки, используемый DriverManager и всеми драйверами.

Если существует менеджер безопасности, его метод checkPermission сначала вызывается с разрешением SQLPermission("setLog") для проверки того, что вызывающий абонент имеет право вызывать setLogWriter.

Параметры:
out - новый объект PrintStream для ведения журнала/трассировки; null для отключения ведения журнала и трассировки
Исключения:
SecurityException - если существует менеджер безопасности и его метод checkPermission запрещает разрешение на установку средства записи логов.
С версии:
1.2
См. также:
SecurityManager.checkPermission(java.security.Permission), getLogWriter()

getConnection

public static Connection getConnection(String url,
                                       Properties info)
                                throws SQLException

Пытается установить соединение с заданным URL базы данных. DriverManager пытается выбрать подходящий драйвер из набора зарегистрированных JDBC-драйверов.

Примечание: Если свойство указано как часть url и также указано в объекте Properties, то то, какое значение будет иметь приоритет, определяется реализацией. Для максимальной переносимости приложение должно указывать свойство только один раз.

Параметры:
url - URL базы данных в формате jdbc:subprotocol:subname
info - список произвольных пар тег/значение в виде строк в качестве аргументов соединения; обычно должны быть включены хотя бы свойства "user" и "password"
Возвращает:
соединение с URL
Исключения:
SQLException - если происходит ошибка доступа к базе данных или URL является null
SQLTimeoutException - когда драйвер определил, что значение времени ожидания, указанное методом setLoginTimeout, было превышено, и по крайней мере попытался отменить текущую попытку соединения с базой данных

getConnection

public static Connection getConnection(String url,
                                       String user,
                                       String password)
                                throws SQLException

Пытается установить соединение с заданным URL базы данных. DriverManager пытается выбрать подходящий драйвер из набора зарегистрированных JDBC-драйверов.

Примечание: Если свойства user или password также указаны как часть url, то то, какое значение будет иметь приоритет, определяется реализацией. Для максимальной переносимости приложение должно указывать свойство только один раз.

Параметры:
url - URL базы данных в формате jdbc:subprotocol:subname
user - пользователь базы данных, от имени которого устанавливается соединение
password - пароль пользователя
Возвращает:
соединение с URL
Исключения:
SQLException - если происходит ошибка доступа к базе данных или URL является null
SQLTimeoutException - когда драйвер определил, что значение времени ожидания, указанное методом setLoginTimeout, было превышено, и по крайней мере попытался отменить текущую попытку соединения с базой данных

getConnection

public static Connection getConnection(String url)
                                throws SQLException

Пытается установить соединение с заданным URL базы данных. DriverManager пытается выбрать подходящий драйвер из набора зарегистрированных JDBC-драйверов.

Параметры:
url - URL базы данных в формате jdbc:subprotocol:subname
Возвращает:
соединение с URL
Исключения:
SQLException - если происходит ошибка доступа к базе данных или URL является null
SQLTimeoutException - когда драйвер определил, что значение времени ожидания, указанное методом setLoginTimeout, было превышено, и по крайней мере попытался отменить текущую попытку соединения с базой данных

getDriver

public static Driver getDriver(String url)
                        throws SQLException

Пытается найти драйвер, который понимает данный URL. DriverManager пытается выбрать подходящий драйвер из набора зарегистрированных JDBC-драйверов.

Параметры:
url - URL базы данных в формате jdbc:subprotocol:subname
Возвращает:
объект Driver, представляющий драйвер, который может подключаться к заданному URL
Исключения:
SQLException - если происходит ошибка доступа к базе данных

registerDriver

public static void registerDriver(Driver driver)
                           throws SQLException

Регистрирует заданный драйвер в DriverManager. Недавно загруженный класс драйвера должен вызвать метод registerDriver, чтобы сообщить о себе DriverManager. Если драйвер уже зарегистрирован, никаких действий не предпринимается.

Параметры:
driver - новый JDBC-драйвер, который должен быть зарегистрирован в DriverManager
Исключения:
SQLException - если происходит ошибка доступа к базе данных
NullPointerException - если driver имеет значение null

registerDriver

public static void registerDriver(Driver driver,
                                  DriverAction da)
                           throws SQLException

Регистрирует заданный драйвер в DriverManager. Недавно загруженный класс драйвера должен вызвать метод registerDriver, чтобы сообщить о себе DriverManager. Если драйвер уже зарегистрирован, никаких действий не предпринимается.

Параметры:
driver - новый JDBC-драйвер, который должен быть зарегистрирован в DriverManager
da - реализация DriverAction, которая будет использоваться при вызове DriverManager#deregisterDriver
Исключения:
SQLException - если происходит ошибка доступа к базе данных
NullPointerException - если driver имеет значение null
С версии:
1.8

deregisterDriver

public static void deregisterDriver(Driver driver)
                             throws SQLException

Удаляет указанный драйвер из списка зарегистрированных драйверов DriverManager.

Если для удаляемого драйвера указано значение null, никаких действий не предпринимается.

Если существует менеджер безопасности, его метод checkPermission сначала вызывается с разрешением SQLPermission("deregisterDriver") для проверки того, что вызывающий абонент имеет право отменить регистрацию JDBC-драйвера.

Если указанный драйвер не найден в списке зарегистрированных драйверов, никаких действий не предпринимается. Если драйвер найден, он будет удален из списка зарегистрированных драйверов.

Если при регистрации JDBC-драйвера был указан экземпляр DriverAction, его метод deregister будет вызван до того, как драйвер будет удален из списка зарегистрированных драйверов.

Параметры:
driver - JDBC-драйвер для удаления
Исключения:
SQLException - если происходит ошибка доступа к базе данных
SecurityException - если существует менеджер безопасности и его метод checkPermission запрещает разрешение на отмену регистрации драйвера.
См. также:
SecurityManager.checkPermission(java.security.Permission)

getDrivers

public static Enumeration<Driver> getDrivers()

Извлекает перечисление со всеми загруженными JDBC-драйверами, к которым имеет доступ текущий вызывающий абонент.

Примечание: Имя класса драйвера можно найти с помощью d.getClass().getName()

Возвращает:
список JDBC-драйверов, загруженных загрузчиком классов вызывающего абонента
См. также:
drivers()

drivers

public static Stream<Driver> drivers()

Извлекает поток со всеми загруженными JDBC-драйверами, к которым имеет доступ текущий вызывающий абонент.

Возвращает:
поток JDBC-драйверов, загруженных загрузчиком классов вызывающего абонента
С версии:
9

setLoginTimeout

public static void setLoginTimeout(int seconds)

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

Параметры:
seconds - ограничение времени входа в секундах; ноль означает, что ограничения нет
См. также:
getLoginTimeout()

getLoginTimeout

public static int getLoginTimeout()

Получает максимальное время в секундах, которое драйвер может ожидать при попытке входа в базу данных.

Возвращает:
ограничение времени входа драйвера в секундах
См. также:
setLoginTimeout(int)

setLogStream

@Deprecated(since="1.2")
public static void setLogStream(PrintStream out)
Устарело.
Используйте setLogWriter

Устанавливает поток PrintStream для ведения журнала/трассировки, используемый DriverManager и всеми драйверами.

Если существует менеджер безопасности, его метод checkPermission сначала вызывается с разрешением SQLPermission("setLog") для проверки того, что вызывающий абонент имеет право вызывать setLogStream.

Параметры:
out - новый поток PrintStream для ведения журнала/трассировки; для отключения установите в null
Исключения:
SecurityException - если существует менеджер безопасности и его метод checkPermission запрещает разрешение на установку потока журнала.
См. также:
SecurityManager.checkPermission(java.security.Permission), getLogStream()

getLogStream

@Deprecated(since="1.2")
public static PrintStream getLogStream()
Устарело.
Используйте getLogWriter

Извлекает поток PrintStream для ведения журнала/трассировки, используемый DriverManager и всеми драйверами.

Возвращает:
поток PrintStream для ведения журнала/трассировки; если отключен, то null
См. также:
setLogStream(java.io.PrintStream)

println

public static void println(String message)

Выводит сообщение в текущий поток журнала JDBC.

Параметры:
message - сообщение журнала или трассировки

© 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/java/sql/DriverManager.html

Spec-Zone .ru
спецификации, руководства, описания, API