Перейти к содержимому

Сколько типов драйверов баз данных различают в jdbc

  • автор:

Что такое JDBC-драйвер? Какие бывают типы?

JDBC – Java DataBase Connectivity – соединение с базами данных на Java. Это стандарт взаимодействия с БД. Его интерфейс поставляется в стандартной JDK в виде пакета java.sql . Какой бы библиотекой для работы с базой данных вы ни пользовались, в ее основе почти всегда лежит низкоуровневый JDBC.

JDBC-драйвер – реализация JDBC для определенной базы данных. В приложении может быть зарегистрировано несколько разных драйверов. При соединении к базе, нужный выбирается исходя из URL соединения. Например, для jdbc:mysql://localhost:3306/db_name будет использован MySQL JDBC драйвер (при наличии). Драйверы делятся на 4 типа:

Тип 1 – JDBC-ODBC мост. Делегирует работу с базой установленному в системе ODBC-драйверу. Платформозависимый. Не поддерживается с Java 8.

Тип 2 – Native API. Делегирует работу с базой библиотеке, установленной в системе. Платформозависимый. Библиотеки в отличие от ODBC специфичны для конкретной базы, поэтому такой драйвер обычно работает быстрее.

Тип 3 – драйвер сетевого протокола. Работает с промежуточным слоем (JavaEE сервером приложений), который транслирует запросы в сетевой протокол, с которым работает конкретная БД. Такой драйвер полностью реализован на Java.

Тип 4 – драйвер протокола БД/тонкий драйвер. Полная реализация протокола взаимодействия с базой данных. Отличается от типа 3 тем, что здесь логика протокола находится не на внешнем промежуточном слое, а прямо в самом драйвере.

Руководство по JDBC. Драйверы.

Драйвер – это сущность, которая реализует определённые интерфейсы JDBC API для взаимодействия с сервером базы данных (далее – БД).

Например, именно драйвер даёт нам возможность открывать соединения и выполнять SQL – запросы и т.д.

Разработчики БД должны имплементировать интерфейс java.sql.Driver для того, чтобы их БД могла работать с JDBC.

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

Java работает с различным оборудованием и с различными операционными системами (далее – ОС), именно поэтому существуют различные драйверы реализующие JDBC для различных платформ.

Существует 4 типа драйверов для JDBC.

Рассмотрим их по отдельности:

Тип 1. JDBC – ODBC транслятор

Этот тип драйвера транслирует JDBC в установленный на каждой машине клиентской машине ODBC. Использование ODBC требует конфигурации DSN, который является целевой БД.

jdbc-driver-type1

Изначально, именно этот тип драйверов был наиболее используемым, так как большинство БД поддерживало только ODBC.

Тип 2. JDBC – нативный API

В этом драйвере JDBC API преобразовывается в уникальный для каждой БД нативный C/C++ API. Его принцип работы крайне схож с драйвером первого типа.

jdbc-driver-type2

Если мы меняем БД, то нам необходимо изменить и нативный API, который будет работать с конкретной БД.

Тип 3. JDBC драйвер на основе библиотеки Java

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

jdbc-driver-type3

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

Тип 4. Чистая Java.

Этот тип драйверов разработан полностью с использованием языка программирования Java и работает с БД через сокетное соединение. Главное его преимущество – наибольшая производительность и, обычно, предоставляется разработчиком БД.

jdbc-driver-type4

Другое его преимущество – невероятная гибкость. Нам не нужно устанавливать никакого дополнительного программного обеспечения (далее – ПО).

Ярким примером такого драйвера является MySQL Connector/J.

Если мы используем такие БД, как MySQL, Oracle и т.д., то наиболее предпочтительным будет использование драйвера типа 4.

Если наше приложение использует различные виды БД, то тип 3 будет более приемлемым.

Если для нашей БД ещё нет драйверов типа 3 или 4, то мы будем вынуждены использовать дврайвер типа 2.

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

В этом уроке мы рассмотрели типы драйверов для JDBC.

В следующем уроке мы изучим соединения в JDBC.

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 не считается драйвером уровня развертывания и обычно используется только в целях разработки и тестирования.

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

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

Каждый JDBC-драйвер принадлежит одному из перечисленных ниже типов.

  • Драйвер типа 1. Транслирует JDBC в ODBC и для взаимодействия с базой данных использует драйвер ODBC. Компания Sun включила в состав JDK один такой драйвер — мост JDBC/ODBC. Однако для его использования требуется соответствующим образом установить и конфигурировать ODBC-драйвер. В первом выпуске JDBC этот мост предполагалось использовать только для тестирования, а не для рабочего применения. В настоящее время уже имеется большое количество более удачных драйверов.
  • Драйвер типа 2. Создается преимущественно на языке Java и частично на собственном языке программирования, который используется для взаимодействия с клиентским API базы данных. Для использования такого драйвера нужно помимо библиотеки Java установить специфический для данной платформы код.
  • Драйвер типа 3. Создается только на основе библиотеки Java, в которой используется независимый от базы данных протокол взаимодействия сервера и базы. Этот протокол позволяет транслировать запросы в соответствии со спецификой конкретной базы. Если код, зависящий от базы данных, находится только на сервере, развертывание существенно упрощается.
  • Драйвер типа 4. Представляет собой библиотеку Java, которая транслирует JDBC-запросы непосредственно в протокол конкретной базы данных.

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

Основные цели интерфейса JDBC можно сформулировать следующим образом.

  • Разработчики создают программы на языке Java, пользуясь для доступа к базам данных стандартными средствами языка SQL(или его специализированным расширениями); при этом они следуют только соглашениям языка Java.
  • Производители СУБД и инструментальных средств поставляют драйверы только низкого уровня.

На конференции JavaOne в мае 1996года представители Sun указали ряд причин отказа от модели ODBC.

  • Модель ODBC трудна в изучении.
  • Модель ODBC имеет всего несколько команд с большим количество параметров. Однако стиль программирования на языке Java основан на использовании большого количества простых и интуитивно понятных методов.
  • Модель ODBC основана на использовании указателей типа void* и других компонентов языка C, которые отсутствуют в Java.
  • Модуль ODBC менее защищена и труднее для распространения, чем решения, основанные только на Java.

Не знаете какие показатели имеют ваш сайт? На сайте sitespy.ru запросто сможете узнать тиц и pr вашего сайта. Масса полезных инструментов для оптимизаторов и веб-масетров.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *