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

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

Ответ 1

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

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

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

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

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

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

Ответ 2

От Wikipedia:

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

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

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

Ответ 3

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

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

Ответ 4

На странице wikipedia:

Типы

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

Ответ 6

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

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

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

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

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

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

Ответ 7

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

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

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

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

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

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

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