Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Швецов.pdf
Скачиваний:
135
Добавлен:
27.03.2015
Размер:
3.89 Mб
Скачать

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

6.6.4. Протокол JDBC

JDBC (Java Database Connectivity) – представляет собой API для выполнения SQL-запросов к базам данных из программ, написанных на языке Java [8].

Рассмотрим кратко историю возникновения и основные принципы JDBC. Более полное описание можно обнаружить в соответствующей литературе, например [8].

Исторически, языки C/C++ долго являлись доминирующими на рынке разработки коммерческого программного обеспечения. Много копий сломано в том числе и в литературе на тему «Какой язык лучше?». Очевидно, что само понятие «лучше» существенно зависит от предметной области, решаемой задачи, имеющихся ресурсов и т.д. В рамках данного пособия мы не ставим своей задачей проведение сравнительного анализа различных языков программирования (интересующиеся могут обратиться, например, к работам Гради Буча и других ведущих теоретиков), однако то, что языки C/C++ доминируют на рынке разработки ПО, является тем фактом, который на настоящий момент трудно оспорить.

По этой причине долгое время все разрабатываемые дополнительные средства программирования (такие как, например, SQL API) ориентировались в первую очередь именно на C/C++. Однако с развитием глобальных сетей, в частности, Интернета и всех сопутствующих технологий стали появляться новые языки, специально предназначенные для работы в новых условиях. Одним из таких языков является язык программирования Java. Имея стандартный набор операторов, будучи весьма похожим на язык C++, Java быстро завоевал большую популярность на рынке разработки приложений для Интернет.

Если обратиться к части данного пособия, содержащей описание основных архитектур, можно увидеть, что Интернет-приложения занимают существенное место на рынке, работая в рамках 2-х, 3-х и многозвенной архитектуры. При этом значение языка Java как средства создания приложений, работающих с базами данных, существенно возрастает. Именно это и явилось одной из основных причин разработки нового программного интерфейса – JDBC. Первоначально ин-

191

терфейс JDBC был разработан компанией Sun Microsystems, в настоящий момент этот API поддерживается всеми ведущими коммерческими СУБД.

Известно несколько различных версий JDBC. Так, версия 1.0 содержала некоторые средства доступа к данным:

диспетчер драйверов (для подключения к разным СУБД); механизм управления сеансами (для одновременной работы с несколькими СУБД);

механизм передачи инструкций SQL на выполнение в СУБД; механизм работы с курсорами (для передачи результатов выполнения запросов из СУБД в приложение).

Этот перечень определенным образом напоминает аналогичный функциональный аппарат протокола ODBC.

Версия JDBC 2.0 содержит существенные отличия. Так, вследствие увеличение возможностей интерфейса было проведено его идеологическое разделение на 2 основных части: Core API (основные возможности) и Extensions API (так называемые расширения).

В литературе указаны следующие основные параметры JDBC [8]: Пакетные операции. Программа на Java может осуществить обновление базы данных в пакетном режиме, т.е. одна функция JDBC может добавить в базу данных несколько записей, что положительно сказывается на производительности программ.

Курсоры с произвольным доступом. В JDBC 2.0 существует средство, позволяющее перемещаться по результатам запроса произвольным образом.

Обновляемые курсоры. В JDBC 2.0 курсоры, наряду с функцией возврата результата запроса выполняют еще и роль обновления базы данных. Обновления производятся при добавлении или изменении одной из строк в результатах запроса.

Организация связного пула. Несколько программ на языке Java могут пользоваться совместным доступом к базе данных, уменьшая затраты на подключения к базе данных/отключения от базы данных [8].

Данный перечень можно продолжить (распределенные транзакции, поддержка JNDI и т.д.).

Версия JDBC 3.0 появилась совсем недавно и содержит такие новации, как объектно-реляционные расширения SQL и улучшенные механизмы обработки транзакций.

192

Архитектура JDBC берет свое начало от ODBC и в существенной части повторяет ее.

Прикладная программа на Java

JDBC API

Диспетчер драйверов JDBC

Драйвер JDBC

 

Драйвер JDBC

 

Драйвер JDBC

 

 

 

 

 

СУБД СУБД СУБД

Данные

 

Данные

 

Данные

(база данных)

 

(база данных)

 

(база данных)

 

 

 

 

 

Рис. 55. Схема выполнения программы на Java с использованием протокола JDBC для доступа к данным

В отличие от ODBC, драйверы JDBC подразделяются на 4 типа. Основные отличия между этими типами связаны с местонахождением API СУБД (на клиентской или серверной СУБД) и способом доступа к базе данных (через собственный API СУБД или через ODBC).

193