Класс DriverManager
- java.lang.Object
-
- java.sql.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) | Удаляет указанный драйвер из списка зарегистрированных драйверов |
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) | Регистрирует указанный драйвер в |
static void | registerDriver(Driver driver,
DriverAction da) | Регистрирует указанный драйвер в |
static void | setLoginTimeout(int seconds) | Устанавливает максимальное время в секундах, которое драйвер будет ждать при попытке подключения к базе данных после того, как драйвер будет идентифицирован. |
static void | setLogStream(PrintStream out) | Устарело. Используйте setLogWriter
|
static void | setLogWriter(PrintWriter out) | Устанавливает объект логгирования/отслеживания |
Методы, объявленные в классе 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