Учебники

JDBC — Типы драйверов

Драйверы JDBC реализуют определенные интерфейсы в API JDBC для взаимодействия с вашим сервером базы данных.

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

Пакет Java.sql , который поставляется с JDK, содержит различные классы с определенным поведением и их фактические реализации выполняются в сторонних драйверах. Сторонние поставщики реализуют интерфейс java.sql.Driver в своем драйвере базы данных.

Типы драйверов JDBC

Реализации драйвера JDBC различаются из-за большого разнообразия операционных систем и аппаратных платформ, в которых работает Java. Sun поделила типы реализации на четыре категории: типы 1, 2, 3 и 4, что объясняется ниже:

Тип 1: драйвер моста JDBC-ODBC

В драйвере типа 1 мост JDBC используется для доступа к драйверам ODBC, установленным на каждом клиентском компьютере. Использование ODBC требует настройки в вашей системе имени источника данных (DSN), которое представляет целевую базу данных.

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

СУБД Тип драйвера 1

JDBC-ODBC Bridge, поставляемый с JDK 1.2, является хорошим примером такого типа драйвера.

Тип 2: JDBC-собственный API

В драйвере типа 2 вызовы API JDBC преобразуются в собственные вызовы API C / C ++, которые являются уникальными для базы данных. Эти драйверы обычно предоставляются поставщиками баз данных и используются так же, как мост JDBC-ODBC. Драйвер для конкретного поставщика должен быть установлен на каждом клиентском компьютере.

Если мы изменим базу данных, нам придется изменить собственный API, поскольку он специфичен для базы данных, и в настоящее время они в основном устарели, но вы можете заметить некоторое увеличение скорости с драйвером типа 2, потому что это устраняет накладные расходы ODBC.

СУБД Тип драйвера 2

Драйвер Oracle Call Interface (OCI) является примером драйвера типа 2.

Тип 3: JDBC-Net чистая Java

В драйвере типа 3 для доступа к базам данных используется трехуровневый подход. Клиенты JDBC используют стандартные сетевые сокеты для связи с сервером приложений промежуточного программного обеспечения. Затем информация о сокете преобразуется сервером приложений промежуточного программного обеспечения в формат вызова, требуемый СУБД, и пересылается на сервер базы данных.

Этот тип драйвера является чрезвычайно гибким, поскольку он не требует кода, установленного на клиенте, и один драйвер может фактически обеспечить доступ к нескольким базам данных.

СУБД Тип драйвера 3

Вы можете думать о сервере приложений как о «прокси» JDBC, что означает, что он выполняет вызовы для клиентского приложения. В результате вам понадобятся некоторые знания о конфигурации сервера приложений, чтобы эффективно использовать этот тип драйвера.

Ваш сервер приложений может использовать драйвер типа 1, 2 или 4 для связи с базой данных, понимание нюансов окажется полезным.

Тип 4: 100% Чистая Ява

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

Этот тип драйвера чрезвычайно гибок, вам не нужно устанавливать специальное программное обеспечение на клиент или сервер. Далее, эти драйверы могут быть загружены динамически.

СУБД Тип драйвера 4

Драйвер MySQL Connector / J является драйвером типа 4. Из-за запатентованного характера своих сетевых протоколов поставщики баз данных обычно предоставляют драйверы типа 4.

Какой драйвер следует использовать?

Если вы обращаетесь к базе данных одного типа, например, Oracle, Sybase или IBM, предпочтительный тип драйвера — 4.

Если ваше Java-приложение обращается к нескольким типам баз данных одновременно, предпочтительным драйвером является тип 3.

Драйверы типа 2 полезны в ситуациях, когда драйверы типа 3 или 4 еще не доступны для вашей базы данных.

Драйвер типа 1 не считается драйвером уровня развертывания и обычно используется только в целях разработки и тестирования.