Как работает JDBC - PullRequest
       9

Как работает JDBC

11 голосов
/ 27 апреля 2010

Может кто-нибудь сказать мне, как работает JDBC? Как ему удается общаться с СУБД? поскольку СУБД может быть написана на другом языке программирования.

Ответы [ 7 ]

9 голосов
/ 27 апреля 2010

Связь с базой данных осуществляется драйверами JDBC, которые могут использовать различные стратегии для «общения» с базой данных (от «перевода» до использования «родного» языка). В зависимости от используемой стратегии, драйверы делятся на 4 типа. Типы драйверов технологии JDBC дают хорошее описание каждого из них:

  1. Мост JDBC-ODBC обеспечивает доступ к API JDBC через один или несколько ODBC драйверы. Обратите внимание, что некоторые ODBC родные код и во многих случаях родная база данных код клиента должен быть загружен на каждом клиентский компьютер, который использует этот тип Водитель. Следовательно, этот тип драйвера как правило, наиболее целесообразно, когда автоматическая установка и загрузка приложения технологии Java является не важный. Для получения информации о Драйвер моста JDBC-ODBC предоставлен Sun, см. Драйвер моста JDBC-ODBC.

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

  3. Драйвер, полностью поддерживающий технологию Java, для сетевого протокола JDBC API вызывает независимую от СУБД чистый протокол, который затем переводится к протоколу СУБД сервером . это Сетевое промежуточное ПО сервера может подключить всю свою Java основанные на технологии клиенты для многих разные базы данных. Конкретные Используемый протокол зависит от поставщика. В общем, это самый гибкий Альтернатива JDBC API. Скорее всего что все производители этого решения будут предоставить продукты, подходящие для интранета использовать. Для того, чтобы эти продукты также поддерживают доступ в Интернет, они должны обрабатывать дополнительные требования для безопасность, доступ через брандмауэры, и т.д., что навязывает сеть. Несколько поставщики добавляют JDBC основанные на технологии драйверы для их промежуточные продукты для существующих баз данных.

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

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

7 голосов
/ 27 апреля 2010

Из Википедия :

Драйверы JDBC являются адаптерами на стороне клиента (установлены на клиенте машина, а не на сервере), которые преобразуют запросы из программ Java к протоколу, который может понять СУБД. [править] Типы

Есть коммерческие и бесплатные драйверы, доступные для большинства реляционных серверы баз данных. Эти драйверы относятся к одному из следующих типов:

  • Тип 1, который вызывает собственный код локально доступного драйвера ODBC.
  • Тип 2, который вызывает собственную библиотеку поставщика базы данных на стороне клиента. Затем этот код обращается к базе данных по сети.
  • Type 3, драйвер чисто java, который взаимодействует с промежуточным программным обеспечением на стороне сервера, а затем обращается к базе данных
  • Тип 4, драйвер чисто java, использующий собственный протокол базы данных
2 голосов
/ 27 апреля 2010

Большинство систем баз данных поддерживают ODBC (Open Database Connectivity или любой другой). Это предназначено для того, чтобы позволить приложениям (например, Access) работать с несколькими реализациями RDBMS за счет некоторого снижения производительности. Когда JDBC был впервые выпущен, был драйвер, который позволял вам подключаться к провайдеру ODBC. Позже некоторые поставщики предоставили драйверы JDBC, специфичные для их RDMS.

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

1 голос
/ 27 апреля 2010

Из Википедии:

JDBC - это API для языка программирования Java, который определяет, как клиент может получить доступ к базе данных. Он предоставляет методы для запроса и обновления данных в базе данных. JDBC ориентирован на реляционные базы данных.

JDBC был впервые представлен в платформе Java 2 Standard Edition версии 1.1 (J2SE) вместе с эталонной реализацией моста JDBC-ODBC, позволяющей подключаться к любому доступному ODBC источнику данных в хост-среде JVM. 1006 *

Не вдаваясь в подробности, вы можете думать о JDBC как об уровне абстракции, который позволяет вам общаться с различными базами данных. Детали, относящиеся к реализации, скрыты от вас, но интерфейс для запросов к базе данных (будь то MySQL, Oracle или любой другой) остается тем же.

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

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

1 голос
/ 27 апреля 2010

Чтение немного о четырех типах драйверов JDBC может вас просветить.

1 голос
/ 27 апреля 2010

Со страницы википедии :

Типы

There are commercial and free drivers available for most relational database servers. These drivers fall into one of the following types:
Type 1 that calls native code of the locally available ODBC driver.
Type 2 that calls database vendor native library on a client side. This code then talks to database over network.
Type 3, the pure-java driver that talks with the server-side middleware that then talks to database
Type 4, the pure-java driver that uses database native protocol
0 голосов
/ 27 апреля 2010

Не могу сказать, что знаю точный ответ на ваш вопрос, но вот некоторая информация, чтобы помочь.

Вот отличное место для начала:

http://java.sun.com/products/jdbc/overview.html

JDBC API содержит два основных набора интерфейсов: первый - это JDBC API для разработчиков приложений, а второй - низкоуровневый API-интерфейс драйвера JDBC для разработчиков драйверов.

Информация для разработчиков драйверов JDBC. По сути, существует набор интерфейсов, которые разработчик реализует для создания драйвера JDBC для конкретной СУБД.

http://java.sun.com/products/jdbc/driverdevs.html

Насколько СУБД пишется на другом языке. Эта СУБД, скорее всего, предоставляет некоторый API (на разных языках и / или форматах), который позволяет драйверам, таким как JDBC, взаимодействовать с СУБД.

...