Интерфейс Driver
public interface Driver
Интерфейс, который должен реализовывать каждый класс драйвера.
Фреймворк Java SQL позволяет использовать несколько драйверов баз данных.
Каждый драйвер должен предоставить класс, реализующий интерфейс Driver.
DriverManager попытается загрузить как можно больше драйверов, а затем, для любого запроса соединения, он будет просить каждый драйвер по очереди попытаться подключиться к целевому URL.
Настоятельно рекомендуется, чтобы каждый класс Driver был небольшим и автономным, чтобы класс Driver можно было загрузить и запросить без загрузки огромного количества вспомогательного кода.
При загрузке класса Driver он должен создать экземпляр себя и зарегистрировать его в DriverManager. Это означает, что пользователь может загрузить и зарегистрировать драйвер, вызвав:
Class.forName("foo.bah.Driver")
Драйвер JDBC может создать реализацию DriverAction для получения уведомлений при вызове DriverManager.deregisterDriver(java.sql.Driver).
- См. также:
-
DriverManager,Connection,DriverAction
Методы
| Модификатор и тип | Метод и описание |
|---|---|
boolean |
acceptsURL(String url) Определяет, может ли драйвер открыть соединение с данным URL. |
Connection |
connect(String url,
Properties info) Попытка установить соединение с базой данных по заданному URL. |
int |
getMajorVersion() Возвращает номер основной версии драйвера. |
int |
getMinorVersion() Возвращает номер дополнительной версии драйвера. |
Logger |
getParentLogger() Возвращает родительский логгер всех логгеров, используемых этим драйвером. |
DriverPropertyInfo[] |
getPropertyInfo(String url,
Properties info) Получает информацию о возможных свойствах для данного драйвера. |
boolean |
jdbcCompliant() Сообщает, является ли данный драйвер настоящим совместимым с JDBC драйвером. |
Методы
connect
Connection connect(String url,
Properties info)
throws SQLException Попытка установить соединение с базой данных по заданному URL. Драйвер должен вернуть "null", если понимает, что он не тот тип драйвера для подключения к данному URL. Это будет распространённым случаем, так как когда менеджер драйверов JDBC просит подключиться к данному URL, он передает URL каждому загруженному драйверу по очереди.
Драйвер должен бросить SQLException, если это правильный драйвер для подключения к данному URL, но возникли проблемы с подключением к базе данных.
Аргумент Properties может быть использован для передачи произвольных пар строка/значение в качестве аргументов подключения. Обычно в объект Properties должны быть включены по крайней мере свойства "user" и "password".
Примечание: Если свойство указано в url и также указано в Properties объекте, то какая именно из значений будет иметь приоритет зависит от реализации. Для максимальной совместимости приложение должно указывать свойство только один раз.
- Параметры:
-
url- URL базы данных для подключения -
info- список произвольных пар строка/значение в качестве аргументов подключения. Обычно должны быть включены по крайней мере свойства "user" и "password". - Возвращает:
- объект
Connection, представляющий соединение с URL - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных или urlnull
acceptsURL
boolean acceptsURL(String url)
throws SQLException Определяет, может ли драйвер открыть соединение с данным URL. Обычно драйверы возвращают true, если они понимают подпротокол, указанный в URL, и false, если не понимают.
- Параметры:
-
url- URL базы данных - Возвращает:
-
trueесли данный драйвер понимает указанный URL;falseв противном случае - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных или urlnull
getPropertyInfo
DriverPropertyInfo[] getPropertyInfo(String url,
Properties info)
throws SQLException Получает информацию о возможных свойствах для данного драйвера.
Метод getPropertyInfo предназначен для того, чтобы позволить универсальному инструменту GUI определить, какие свойства ему следует запросить у пользователя, чтобы получить достаточно информации для подключения к базе данных. Обратите внимание, что в зависимости от значений, предоставленных пользователем, могут потребоваться дополнительные значения, поэтому может потребоваться выполнить несколько вызовов метода getPropertyInfo.
- Параметры:
-
url- URL базы данных для подключения -
info- предлагаемый список пар тег/значение, которые будут отправлены при открытии соединения - Возвращает:
- массив объектов
DriverPropertyInfoописывающих возможные свойства. Этот массив может быть пустым, если свойства не требуются. - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных
getMajorVersion
int getMajorVersion()
Возвращает номер основной версии драйвера. Изначально он должен быть 1.
- Возвращает:
- номер основной версии драйвера
getMinorVersion
int getMinorVersion()
Возвращает номер дополнительной версии драйвера. Изначально он должен быть 0.
- Возвращает:
- номер дополнительной версии драйвера
jdbcCompliant
boolean jdbcCompliant()
Сообщает, является ли данный драйвер настоящим совместимым с JDBC драйвером. Драйвер может указать true только в том случае, если он прошёл тесты на соответствие стандарту JDBC; в противном случае он должен вернуть false.
Совместимость с JDBC требует полной поддержки API JDBC и полной поддержки SQL 92 Entry Level. Ожидается, что драйверы, совместимые с JDBC, будут доступны для всех основных коммерческих баз данных.
Этот метод не призван поощрять разработку драйверов, не совместимых с JDBC, а является признанием того, что некоторые поставщики заинтересованы в использовании API и фреймворка JDBC для облегченных баз данных, которые не поддерживают полную функциональность базы данных, или для специальных баз данных, таких как ретриваль информации по документам, где реализация SQL может быть невозможной.
- Возвращает:
-
trueесли этот драйвер совместим с JDBC;falseв противном случае
getParentLogger
Logger getParentLogger()
throws SQLFeatureNotSupportedException Возвращает родительский логгер всех логгеров, используемых этим драйвером. Это должен быть логгер, максимально удаленный от корневого логгера, который все еще является предком всех логгеров, используемых этим драйвером. Настройка этого логгера повлияет на все сообщения логов, генерируемые драйвером. В худшем случае это может быть корневой логгер.
- Возвращает:
- родительский логгер для данного драйвера
- Имеет исключения:
-
SQLFeatureNotSupportedException- если драйвер не используетjava.util.logging. - Начиная с версии:
- 1.7
© 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.