10 Драйвер моста JDBC-ODBC
10.1 Мост JDBC-ODBC
Там, где это возможно, используйте
Pure Java JDBC driver вместо моста меду JDBC и ODBC, как как в этот случай
не требует дополнительной конфигурации ODBC на клиенте. Кроме того, Вы
избавлены от потенциальной возможности краха Java VM из-за ошибки в ODBC.
10.1.1 Что такое мост JDBC-ODBC?
Мост JDBC-ODBC - это драйвер JDBC, реализующий операции JDBC путем трансляции
их в операции ODBC. С точки зрения ODBC - это обычное приложение. Мост таким
образом предоставляет JDBC-интерфейс к любым СУБД, для которых доступен
ODBC-драйвер. Мост реализован в виде пакета
sun.jdbc.odbc
и содержит native library для доступа к ODBC.
Этот мост - совместная разработка Intersolv и JavaSoft.
10.1.2 Какая версия ODBC поддерживается?
Мост поддерживает ODBC 2.x. Это та версия, которую многие ODBC-драйверы в настоящее
время поддерживают. Мост работает также с драйверами ODBC 3.x.
10.1.3 Реализация моста
Мост реализован на Java и использует Java native методы для вызова ODBC.
10.1.4 Установка
Мост устанавливается автоматически вместе с JDK как пакет
sun.jdbc.odbc
. См. информацию от поставщика Вашего ODBC-драйвера по
установке и конфигурации ODBC. Для моста не требуется специальное конфигурирование.
10.2 Использование моста
Мост используется для открытия JDBC-соединения с использованием URL с
подпротоколом
odbc
. См. ниже примеры URL. Перед установлением
соединения должен быть загружен класс драйвера моста
sun.jdbc.odbc.JdbcOdbcDriver
, т.е. либо добавлен в свойство
класса
java.lang.System
с именем
jdbc.drivers
, либо явно быть загруженным с помощью загрузчика Java-классов.
Явная загрузка осуществляется следующим фрагментом кода:
Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
При загрузке класса происходит регистрация нового драйвера моста в JDBC.
10.2.1 Использование моста из апплета
Pure Java JDBC-драйверы (тип 4, см. intro.doc.html) хорошо работают
с апплетами. Драйвер же моста не очень хорошо работает в апплетах.
10.2.2 Многие навигаторы не поддерживают мост
Так как мост - это необязательная компонента JDK, он может быть исключен
в веб-навигаторе. И даже если он имеется, то его использовать могут только
доверяемые апплеты (т.е. те, которым разрешено писать в файлы). Это сделано
с целью сохранить изоляцию апплетов от внешней среды. И даже если апплет доверяемый,
необходимо на каждом клиентском месте сконфигурировать ODBC.
10.2.6 Что представляет собой JDBC-URL для моста?
Драйвер моста использует подпротокол
odbc
. URL-ы для этого подпротокола
имеют следующий вид:
jdbc:odbc:<data-source-name>[<attribute-name>=<attribute-value>]*
Например:
jdbc:odbc:sybase
jdbc:odbc:mydb;UID=me;PWD=secret
jdbc:odbc:ora123;Cachesize=300
10.2.7 Отладка
Мост предоставляет возможности расширенной трассировки в случае, когда
в
DriverManager
разрешена трассировка. Следующая строка кода
разрешает трассировку и направляет ее в стандартный вывод:
java.sql.DriverManager.setLogStream(java.lang.System.out);
10.3 Общие замечания
Мост рассчитан на нереентерабельные драйверы ODBC. Это означает, что мост
синхронизирует доступ к этим драйверам. В результате мост предоставляет ограниченную
конкурентность пользователей. Это и является основным ограничением моста. В отличие от него,
многие драйверы JDBC типа 4 (Pure Java) предоставляют требуемый уровень конкурентности.