Jump to content

JDBC-драйвер

Драйвер JDBC — это программный компонент, позволяющий приложению Java взаимодействовать с базой данных . [1] Драйверы JDBC аналогичны драйверам ODBC , поставщикам данных ADO.NET и поставщикам OLE DB .

Для подключения к отдельным базам данных JDBC подключения к базе данных Java ( API ) требуются драйверы для каждой базы данных. Драйвер JDBC выдает соединение с базой данных и реализует протокол передачи запроса и результата между клиентом и базой данных.

Драйверы технологии JDBC относятся к одной из четырех категорий. [2]

  1. Мост JDBC-ODBC
  2. Драйвер собственного API
  3. Драйвер сетевого протокола ( драйвер промежуточного программного обеспечения )
  4. Драйвер протокола базы данных (драйвер Pure Java) или тонкий драйвер.

Драйвер типа 1 — мост JDBC-ODBC

[ редактировать ]
Схема моста JDBC-ODBC

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

Драйвер зависит от платформы, поскольку он использует ODBC, который, в свою очередь, зависит от собственных библиотек базовой системы, JVM операционной на которой работает . Кроме того, использование этого драйвера приводит к появлению других зависимостей при установке; например, ODBC должен быть установлен на компьютере с драйвером, а база данных должна поддерживать драйвер ODBC. Использование этого драйвера не рекомендуется, если доступна альтернатива драйверу на чистом Java. Другой вывод заключается в том, что любое приложение, использующее драйвер типа 1, является непереносимым из-за привязки между драйвером и платформой. Эта технология не подходит для среды с большим количеством транзакций. Драйверы типа 1 также не поддерживают полный набор команд Java и ограничены функциональностью драйвера ODBC.

Sun (теперь Oracle) предоставила драйвер моста JDBC-ODBC: sun.jdbc.odbc.JdbcOdbcDriver. Этот драйвер представляет собой собственный код, а не Java, и имеет закрытый исходный код. Мост JDBC-ODBC от Sun/Oracle был удален в Java 8 (доступны решения других поставщиков). [3] [4] [5] [6]

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

может подключиться более одного драйвера JDBC Иногда может случиться так, что к данному URL-адресу . Например, при подключении к определенной удаленной базе данных можно использовать драйвер моста JDBC-ODBC, драйвер JDBC-to-generic network-protocol или драйвер, предоставленный поставщиком базы данных. В таких случаях порядок проверки драйверов имеет важное значение, поскольку DriverManager будет использовать первый найденный драйвер, который может успешно подключиться к данному URL-адресу.

Сначала DriverManager пытается использовать каждый драйвер в том порядке, в котором он был зарегистрирован. (Драйверы, перечисленные в jdbc.drivers, всегда регистрируются первыми.) Он пропустит все драйверы, являющиеся ненадежным кодом, если только они не были загружены из того же источника, что и код, пытающийся открыть соединение.

Он тестирует драйверы, по очереди вызывая метод Driver.connect для каждого из них, передавая им URL-адрес, который пользователь первоначально передал методу. DriverManager.getConnection. Первый драйвер, распознавший URL-адрес, устанавливает соединение.

Преимущества

[ редактировать ]
  • Можно получить доступ практически к любой базе данных, для которой установлен драйвер ODBC, и получить данные.

Недостатки

[ редактировать ]
  • Накладные расходы на производительность, поскольку вызовы должны проходить через мост JDBC (подключение к базе данных Java) к драйверу ODBC (открытое подключение к базе данных), а затем к собственному интерфейсу подключения к базе данных (таким образом, может быть медленнее, чем другие типы драйверов).
  • Драйвер ODBC необходимо установить на клиентском компьютере.
  • Не подходит для апплетов , поскольку на клиенте необходимо установить драйвер ODBC.
  • Определенные драйверы ODBC не всегда доступны на всех платформах; следовательно, переносимость этого драйвера ограничена.
  • Нет поддержки со стороны JDK 1.8 (Java 8).

Драйвер типа 2 — драйвер Native-API.

[ редактировать ]
Схема драйвера Native API

Драйвер JDBC типа 2, также известный как драйвер Native-API , представляет собой реализацию драйвера базы данных, которая использует клиентские библиотеки базы данных. Драйвер преобразует вызовы методов JDBC в собственные вызовы API базы данных. Например: Драйвер Oracle OCI является драйвером типа 2.

Преимущества

[ редактировать ]
  • Поскольку реализация моста JDBC-ODBC отсутствует, он может быть значительно быстрее, чем драйвер типа 1.

Недостатки

[ редактировать ]
  • Клиентская библиотека поставщика должна быть установлена ​​на клиентском компьютере.
  • Не все базы данных имеют клиентскую библиотеку.
  • Этот драйвер зависит от платформы.
  • Этот драйвер поддерживает все приложения Java, кроме апплетов.

Драйвер типа 3 — драйвер сетевого протокола (драйвер промежуточного программного обеспечения)

[ редактировать ]
Схема драйвера сетевого протокола

Драйвер JDBC типа 3, также известный как драйвер Pure Java для промежуточного программного обеспечения базы данных, [7] — это реализация драйвера базы данных, которая использует промежуточный уровень между вызывающей программой и базой данных. Средний уровень ( сервер приложений ) прямо или косвенно преобразует вызовы JDBC , зависящий от поставщика в протокол базы данных .

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

Один и тот же драйвер JDBC на стороне клиента может использоваться для нескольких баз данных. Это зависит от количества баз данных, для поддержки которых настроено промежуточное программное обеспечение. Драйвер типа 3 не зависит от платформы, поскольку различия, связанные с платформой, учитываются промежуточным программным обеспечением. Кроме того, использование промежуточного программного обеспечения обеспечивает дополнительные преимущества безопасности и доступа к брандмауэру.

  • Отправляет вызовы API JDBC на сетевой сервер среднего уровня, который преобразует вызовы в сетевой протокол, специфичный для СУБД. Переведенные вызовы затем отправляются в конкретную СУБД.
  • Применяется трехуровневый коммуникационный подход.
  • Может взаимодействовать с несколькими базами данных – не зависит от поставщика.
  • Драйвер клиента JDBC, написанный на Java, взаимодействует с промежуточным сетевым сервером, используя независимый от базы данных протокол, а затем этот сетевой сервер преобразует этот запрос в команды базы данных для этой базы данных.
  • Таким образом, драйвер клиента для связи с промежуточным программным обеспечением не зависит от базы данных.

Преимущества

[ редактировать ]
  • Поскольку связь между клиентом и сервером промежуточного программного обеспечения не зависит от базы данных, на клиенте нет необходимости использовать библиотеку поставщика базы данных. Клиент не требует изменения для новой базы данных.
  • Сервер промежуточного программного обеспечения (который может быть полноценным сервером приложений J2EE) может предоставлять типичные службы промежуточного программного обеспечения, такие как кэширование (соединений, результатов запросов и т. д.), балансировка нагрузки, ведение журнала и аудит.
  • Один драйвер может обрабатывать любую базу данных, если ее поддерживает промежуточное программное обеспечение.
  • Например: сервер IDA

Недостатки

[ редактировать ]
  • Требуется выполнить кодирование для конкретной базы данных на среднем уровне.
  • Добавленный уровень промежуточного программного обеспечения может привести к дополнительной задержке, но обычно ее можно преодолеть за счет использования более совершенных сервисов промежуточного программного обеспечения.

Драйвер типа 4 — драйвер протокола базы данных/тонкий драйвер (драйвер Pure Java)

[ редактировать ]
Схема драйвера Native-Protocol

Драйвер JDBC типа 4, также известный как драйвер Direct to Database Pure Java , представляет собой реализацию драйвера базы данных, которая преобразует вызовы JDBC , зависящий от поставщика непосредственно в протокол базы данных .

полностью написанные на Java Драйверы типа 4, , не зависят от платформы . Они устанавливаются внутри виртуальной машины Java клиента. Это обеспечивает более высокую производительность, чем драйверы типа 1 и типа 2, поскольку не требует затрат на преобразование вызовов в вызовы ODBC или API базы данных. В отличие от драйверов типа 3, для работы не требуется соответствующее программное обеспечение.

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

Преимущества

[ редактировать ]
  • Полностью реализован на Java для достижения независимости от платформы.
  • Эти драйверы не преобразуют запросы в промежуточный формат (например, ODBC).
  • Клиентское приложение подключается напрямую к серверу базы данных. Никакие уровни трансляции или промежуточного программного обеспечения не используются, что повышает производительность.
  • JVM может управлять всеми аспектами соединения приложения с базой данных; это может облегчить отладку.

Недостатки

[ редактировать ]
  • Драйверы зависят от конкретной базы данных, поскольку разные поставщики баз данных используют совершенно разные (и обычно собственные) сетевые протоколы.

См. также

[ редактировать ]
  1. ^ "Технологии Java SE - База данных"
  2. ^ Обзор Sun JDBC
  3. ^ Оракул. «Мост JDBC-ODBC» . Справочный центр Oracle . Проверено 27 июня 2015 г.
  4. ^ «Жизнь после sun.jdbc.odbc.JdbcOdbcDriver» . Блог о технологии универсального доступа к данным . Программное обеспечение OpenLink. 04.06.2015 . Проверено 18 ноября 2016 г. Мост JDBC-to-ODBC, как в форме типа 1, так и в форме типа 3, доступен и регулярно обновляется с момента его первоначального выпуска для JDBC 1.
  5. ^ «Разъемы и драйверы моста SequeLink | Progress DataDirect» .
  6. ^ «Поддержка Java 8 ODBC» .
  7. ^ «Драйвер Pure Java для промежуточного программного обеспечения базы данных (об адаптерах базы данных)» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8d7b17acf8061fadab070ec212f9399d__1698922620
URL1:https://arc.ask3.ru/arc/aa/8d/9d/8d7b17acf8061fadab070ec212f9399d.html
Заголовок, (Title) документа по адресу, URL1:
JDBC driver - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)