Класс DriverManager
- java.lang.Object
-
- java.sql.DriverManager
public class DriverManager extends Object
Основной сервис для управления набором драйверов JDBC.
ПРИМЕЧАНИЕ: Интерфейс DataSource, новый в API JDBC 2.0, предоставляет другой способ подключения к источнику данных. Использование объекта DataSource является предпочтительным способом подключения к источнику данных.
В рамках своей инициализации класс DriverManager попытается загрузить классы драйверов, указанные в системной переменной "jdbc.drivers". Это позволяет пользователю настраивать драйверы JDBC, используемые их приложениями. Например, в файле ~/.hotjava/properties можно указать:
jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver
Методы DriverManager getConnection и getDrivers были усовершенствованы для поддержки механизма поставщиков услуг Java Standard Edition Service Provider. Драйверы JDBC 4.0 должны включать файл META-INF/services/java.sql.Driver. Этот файл содержит имя реализации драйвера JDBC для java.sql.Driver. Например, для загрузки класса my.sql.Driver, файл META-INF/services/java.sql.Driver будет содержать запись:
my.sql.Driver
Приложениям больше не нужно явно загружать драйверы JDBC с помощью Class.forName(). Существующие программы, которые в настоящее время загружают драйверы JDBC с помощью Class.forName(), будут продолжать работать без изменений.
Когда вызывается метод getConnection, DriverManager попытается найти подходящий драйвер среди тех, которые загружены при инициализации и тех, которые загружены явно с помощью того же загрузчика классов, что и текущий апплет или приложение.
Начиная с Java 2 SDK, Standard Edition, версии 1.3, поток регистрации можно установить только в том случае, если предоставлено соответствующее разрешение. Обычно это делается с помощью инструмента PolicyTool, который можно использовать для предоставления permission
java.sql.SQLPermission "setLog".
- См. также:
-
Driver,Connection
Методы
| Модификатор и тип | Метод и описание |
|---|---|
static void |
deregisterDriver(Driver driver) Удаляет указанный драйвер из списка зарегистрированных драйверов |
static Connection |
getConnection(String url) Попытка установить соединение с заданным URL базы данных. |
static Connection |
getConnection(String url,
Properties info) Попытка установить соединение с заданным URL базы данных. |
static Connection |
getConnection(String url,
String user,
String password) Попытка установить соединение с заданным URL базы данных. |
static Driver |
getDriver(String url) Попытка найти драйвер, который понимает заданный URL. |
static Enumeration<Driver> |
getDrivers() Возвращает перечисление всех текущих загруженных драйверов JDBC, к которым имеет доступ текущий вызывающий объект. |
static int |
getLoginTimeout() Получает максимальное время в секундах, которое драйвер может ждать при попытке входа в базу данных. |
static PrintStream |
getLogStream() Устарело. Используйте |
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) Устарело. Используйте |
static void |
setLogWriter(PrintWriter out) Устанавливает объект регистрирования/отслеживания |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы
getLogWriter
public static PrintWriter getLogWriter()
Возвращает объект записи журнала. Следует использовать методы getLogWriter и setLogWriter, а не устаревшие методы get/setlogStream.
- Возвращает:
- объект
java.io.PrintWriter - С:
- 1.2
- См. также:
setLogWriter(java.io.PrintWriter)
setLogWriter
public static void setLogWriter(PrintWriter out)
Устанавливает объект потока для регистрации/отслеживания PrintWriter, используемый менеджером драйверов DriverManager и всеми драйверами.
Введение метода setLogWriter создает небольшую проблему с версионированием. Метод setLogWriter не может создать объект PrintStream, который будет возвращён методом getLogStream—платформа Java не предоставляет обратной конвертации. В результате, новые приложения, использующие setLogWriter и драйвер JDBC 1.0, использующий getLogStream, вероятно, не увидят отладочную информацию, записанную этим драйвером.
Начиная с Java 2 SDK, Standard Edition, версия 1.3, этот метод проверяет, существует ли объект SQLPermission, прежде чем установить поток регистрации. Если объект SecurityManager существует и его метод checkPermission запрещает установку объекта записи журнала, этот метод генерирует исключение java.lang.SecurityException.
- Параметры:
-
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- если произошла ошибка доступа к базе данных или URLnull -
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- если произошла ошибка доступа к базе данных или URLnull -
SQLTimeoutException- когда драйвер определил, что значение тайм-аута, указанное методомsetLoginTimeout, истекло и по крайней мере попытался отменить текущую попытку подключения к базе данных
getConnection
public static Connection getConnection(String url)
throws SQLException Попытка установить соединение с указанной базой данных URL. Менеджер драйверов DriverManager пытается выбрать подходящий драйвер из набора зарегистрированных драйверов JDBC.
- Параметры:
-
url- URL базы данных в форматеjdbc:subprotocol:subname - Возвращает:
- соединение с URL
- Исключения:
-
SQLException- если произошла ошибка доступа к базе данных или URLnull -
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 запрещает разрешение, то будет выброшено исключение SecurityException.
Если указанный драйвер не найден в списке зарегистрированных драйверов, то никаких действий не выполняется. Если драйвер был найден, он будет удален из списка зарегистрированных драйверов.
Если при регистрации JDBC-драйвера был указан объект DriverAction, его метод deregister будет вызван перед удалением драйвера из списка зарегистрированных драйверов.
- Параметры:
-
driver- JDBC драйвер для удаления - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных -
SecurityException- если менеджер безопасности существует и его методcheckPermissionзапрещает разрешение на дерегистрацию драйвера. - См. также:
SecurityManager.checkPermission(java.security.Permission)
getDrivers
public static Enumeration<Driver> getDrivers()
Возвращает перечисление всех загруженных в данный момент JDBC-драйверов, к которым текущий вызывающий поток имеет доступ.
Примечание: Имя класса драйвера можно получить с помощью d.getClass().getName()
- Возвращает:
- список JDBC-драйверов, загруженных загрузчиком классов вызывающего потока
setLoginTimeout
public static void setLoginTimeout(int seconds)
Устанавливает максимальное время в секундах, которое драйвер будет ждать при попытке подключения к базе данных после идентификации драйвера.
- Параметры:
-
seconds- лимит времени входа в секунды; ноль означает отсутствие ограничения - См. также:
getLoginTimeout()
getLoginTimeout
public static int getLoginTimeout()
Получает максимальное время в секундах, которое драйвер может ждать при попытке входа в базу данных.
- Возвращает:
- лимит времени входа в драйвер в секундах
- См. также:
setLoginTimeout(int)
setLogStream
@Deprecated public static void setLogStream(PrintStream out)
Устарело. Используйте setLogWriter
Устанавливает объект потока для регистрации/отслеживания PrintStream, используемый менеджером драйверов DriverManager и всеми драйверами.
В Java 2 SDK, Standard Edition, версии 1.3 этот метод проверяет, существует ли объект SQLPermission перед установкой потока регистрации. Если объект SecurityManager существует и его метод checkPermission запрещает установку объекта записи журнала, этот метод генерирует исключение java.lang.SecurityException.
- Параметры:
-
out- новый поток регистрации/отслеживания PrintStream; для отключения, установите вnull - Исключения:
-
SecurityException- если менеджер безопасности существует и его методcheckPermissionзапрещает установку потока регистрации - См. также:
-
SecurityManager.checkPermission(java.security.Permission),getLogStream()
getLogStream
@Deprecated 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.