Различие между Драйвером JDBC вводит числа

Я заметил, что JDBC имеет различные Драйверы как:

  1. Тип 1 Драйвер
  2. Тип 2 Драйвер и т.д. к Типу 4

Почему они завоевывали репутацию как Тип 1, Тип 2 и т.д.? Есть ли какая-либо логика?

19
задан ROMANIA_engineer 17 June 2017 в 18:16
поделиться

5 ответов

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

  1. Через ODBC API.
  2. Через API, специфичный для производителя БД (используя вызовы JNI, например, DLL-файл в Windows).
  3. Через общий сетевой протокол (используя сокеты, например, с протоколом TCP/IP).
  4. Через сетевой протокол, специфичный для производителя БД (по-прежнему с использованием сокетов).

В целом (просто по совпадению), чем выше номер типа, тем лучше работает драйвер JDBC.

22
ответ дан 30 November 2019 в 03:38
поделиться

http://en.wikipedia.org/wiki/JDBC_driver

Кажется, это не логика, просто лень, я полагаю!

ОБНОВЛЕНИЕ: вопрос был в том, есть ли какая-то логика для вызова этого типа 1, типа 2 и т. Д. Вместо вызова типа яблоко, тип апельсина :). Я понимаю, что типы драйверов разные и работают / не работают в зависимости от обстоятельств, но почему имя «Тип 1» вместо «Тип JDBC-ODBC» или «Тип JO» не имеет причины AFAIK.

0
ответ дан 30 November 2019 в 03:38
поделиться

Цифры не очень информативны. Мне более полезно думать об этом в следующих строках:

  • Локальный API (1,2) против сетевого протокола (3, 4)
  • Независимость от базы данных (нечетные числа) против специфической для базы данных (четные числа)

Я никогда не мог вспомнить цифры, но когда кто-то сказал: «Мы используем драйвер типа 4», я мог задать два вопроса «да-нет», чтобы понять, о чем они говорят.

4
ответ дан 30 November 2019 в 03:38
поделиться

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

0
ответ дан 30 November 2019 в 03:38
поделиться

Я полагаю, что это восходит к оригинальному (1997) вступлению Sun к JDBC :

Драйверы JDBC, о которых мы знаем в настоящее время, обычно вписываются в один из {{ 1}} четыре категории:

  1. Мост JDBC-ODBC плюс драйвер ODBC: продукт моста JavaSoft обеспечивает доступ JDBC через драйверы ODBC. Обратите внимание, что двоичный код ODBC и в {{1} } во многих случаях код клиента базы данных должен быть загружен на каждый клиентский компьютер, который использует этот драйвер. В результате этот тип драйвера наиболее подходит для корпоративной сети, где установка клиента не является серьезной проблемой, или для написанного кода сервера приложений в Java в трехуровневой архитектуре.

  2. Драйвер Native-API частично-Java: этот тип драйвера преобразует вызовы JDBC в вызовы клиентского API для Oracle, Sybase, Informix, DB2 или других СУБД. Обратите внимание, что, как и драйвер моста , этот стиль драйвера требует , чтобы некоторый двоичный код был загружен на каждый клиентский компьютер.

  3. Чистый драйвер Java JDBC-Net: этот драйвер переводит вызовы JDBC в независимый от СУБД сетевой протокол, который затем переводится в протокол СУБД сервером. Это промежуточное программное обеспечение сетевого сервера способно подключать своих клиентов на чистой Java к множеству различных баз данных. Конкретный используемый протокол зависит от поставщика. В общем, это наиболее гибкая альтернатива JDBC. Вероятно , что все поставщики этого решения будут предоставлять продукты , подходящие для использования в интрасети. Чтобы эти продукты также поддерживали доступ в Интернет, они должны соответствовать дополнительным требованиям безопасности, доступу через брандмауэры и т. Д. {{1} } четвертое, что навязывает Интернет.

  4. Чистый драйвер Java с собственным протоколом: драйверы этого типа преобразуют вызовы JDBC в сетевой протокол , напрямую используемый СУБД. Это позволяет напрямую обращаться с клиентского компьютера к серверу СУБД и является отличным решением для доступа к интрасети. Поскольку многие из этих протоколов являются проприетарными, поставщики баз данных сами будут основным источником. У некоторых поставщиков баз данных они находятся в разработке. .

Ожидается, что в конечном итоге категории драйверов 3 и 4 станут предпочтительным способом доступа к базам данных из JDBC. Категории драйверов 1 и 2 являются промежуточными решениями, для которых прямые чистые драйверы Java еще не доступны. Возможны варианты категорий 1 и 2 (не показаны в таблице ниже), для которых требуется соединитель, , но, как правило, это менее желательные решения. Категории 3 и 4 предлагают все преимущества Java, включая автоматическую установку (например, загрузку драйвера JDBC с помощью апплета , который его использует).


Обратите внимание, что они на самом деле не называли их Типами 1, 2, 3 и 4, а скорее называли мост JDBC-ODBC плюс драйвер ODBC, драйвер Native-API частично-Java, драйвер JDBC-Net чистой Java и Native-протокол. чистый драйвер Java. Каждое имя было громким, поэтому люди сразу же начали называть их по номеру.

10
ответ дан 30 November 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: