Лабораторная работа №4

 

 РАЗРАБОТКА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ДЛЯ РАБОТЫ С БАЗОЙ ДАННЫХ

 

Цель: Научиться разрабатывать GUI -приложения с использованием базы данных.

Интерфейс JDBC

Разумеется, что организовать доступ к базам данных для современного языка программирования в наше время не представляет никакой сложности. Более того, и сами языки программирования более всего оцениваются разработчиками по типу и возможностям заложенных в них средств доступа к базам данных, удобству и полноте интерфейсов. В этом смысле Java не представляет исключения. Уже в версии JDK1.1 появился пакет классов java.sql, обеспечивающий большинство функций, известных к тому времени разработчикам ODBC -приложений. В этом пакете содержится ряд замечательных классов, например: java.sql.CallableStatement, который обеспечивает выполнение на Java хранимых процедур; java.sql.DatabaseMetaData, который исследует базу данных на предмет ее реляционной полноты и целостности с получением самых разнообразных данных о типах и содержимом таблиц, колонок, индексов, ключей и т.д.; наконец, java.sql.ResultSetMetaData, с помощью которого можно выводить в удобном виде всю необходимую информацию из таблиц базы данных или печатать сами метаданные в виде названий таблиц и колонок.

Однако коренное отличие Java от других традиционных языков программирования заключается в том, что одни и те же функции доступа к базам данных с помощью универсальности и кроссплатформенности Java можно организовать чрезвычайно гибко, используя все преимущества современных объектно-ориентированных технологий, WWW и Intranet/Internet.

JDBC (Java Database Connectivity) является не протоколом, а интерфейсом и основан на спецификациях SAG CLI (SQL Access Group Call Level Interface – интерфейс уровня вызова группы доступа SQL). JDBC – это стандартный прикладной интерфейс (API) языка Java для организации взаимодействия между приложением и СУБД.

Сам по себе JDBC работать не может и использует основные абстракции и методы ODBC. Хотя в стандарте JDBC API и предусмотрена возможность работы не только через ODBC, а и через использование прямых линков к базам данных по двух- или трехзвенной схеме (рис. 4.1), эту схему используют гораздо реже, чем повсеместно используемый JDBC-ODBC-Bridge, занимающий центральное место в общей схеме взаимодействия интерфейсов (рис. 4.2).


Рис. 4.1. Непосредственный доступ к базе данных по трехзвенной схеме

 


Рис. 4.2. Схема взаимодействия интерфейсов

 

Даже беглого взгляда на рис. 4.2 вполне достаточно, чтобы понять – общая схема взаимодействия интерфейсов в Java удивительным образом напоминает схему ODBC с ее гениальным изобретением драйвер-менеджера к различным СУБД и единого универсального пользовательского интерфейса. JDBC Driver Manager − это основной ствол JDBC -архитектуры. Его первичные функции очень просты − соединить Java -программу и соответствующий JDBC -драйвер и затем выйти из игры. Естественно, что ODBC был взят в качестве основы JDBC из-за его популярности среди независимых поставщиков программного обеспечения и пользователей.

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

В отличие от интерфейса ODBC JDBC организован намного проще. Главной его частью является драйвер, поставляемый фирмой JavaSoft для доступа из JDBC к источникам данных. Этот драйвер является самым верхним в иерархии классов JDBC и называется DriverManager. Согласно установившимся правилам Internet, база данных и средства ее обслуживания идентифируются при помощи URL. В самом общем случае URL описывает электронный ресурс, такой как страница WWW или файл на сервере FTP, способом, который уникальным образом идентифицирует этот ресурс. JDBC же использует URL для идентификации расположений как драйверов, так и источников данных. URL для JDBC имеют следующий формат:

 

jdbc: <подпротокол>://<идентификатор источника данных>

 

где jdbc указывает, что URL ссылается на источник данных JDBC . Подпротокол определяет используемый драйвер JDBC . Например, может применяться драйвер odbc . Идентификатор источника данных определяет источник данных. Чтобы применить драйвер ODBC с источником данных ODBC dBaseTestStudent , создается URL следующего формата:

 

jdbc:odbc: dBaseTestStudent

 

В некоторых случаях вместо ODBC может быть использовано имя прямого сетевого сервиса к базе данных, например:

jdbc:dcenaming:accounts-payable,

или

jdbc:dbnet://ultra1:1789/state

 

В последнем случае часть URL //ultra1:1789/state представляет собой и описывает имя хоста, порт и соответствующий идентификатор для доступа к соответствующей базе данных.

Однако, как уже говорилось выше, чаще всего все-таки используется механизм ODBC благодаря его универсальности и доступности. Программа взаимодействия между драйвером JDBC и ODBC разработана фирмой JavaSoft в сотрудничестве с InterSolv и называется JDBC-ODBC-Bridge. Она реализована в виде JdbcOdbc.class (для платформы Windows JdbcOdbc.dll) и входит в поставку JDK1.1. Помимо JdbcOdbc -библиотек должны существовать специальные драйвера (библиотеки), которые реализуют непосредственный доступ к базам данных через стандартный интерфейс ODBC. Как правило, эти библиотеки описываются в файле ODBC.INI. На внутреннем уровне JDBC-ODBC-Bridge отображает методы Java в вызовы ODBC и тем самым позволяет использовать любые существующие драйверы ODBC, которых к настоящему времени накоплено в изобилии.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: