Средства на JAVA за достъп до бази данни. Потребителски JSP тагове
Стандарт JDBC
JDBC (Java DataBase Connectivity) е стандарт, осигуряващ платформено независим достъп до релационни бази данни посредством заявки, реализирани по стандарта SQL. Средствата на JDBC API нямат отношение към стандартизацията на SQL. Те могат да работят както с неговото основното ядро, така и с разширения, специфични за конкретната платформа за база данни. При това логиката на JAVA-кода остава неизменна.
Със средствата на JDBC стандарта JAVA приложенията могат да получат достъп до всяка платформа за управление на база данни. При това може да се подходи по два начина. Единият е JAVA-приложението да осъществи връзка със сървъра на системата за управление на базата данни, като се използват специфични за конкретния сървър параметри. Другият начин е базата данни да се публикува на даден хост като източник на данни (data source) със средствата на стандарта ODBC (Open DataBase Connectivity). Този стандарт позволява унифициран достъп в Internet до разнотипни бази данни, при което спецификата на конкретната база данни остава скрита за клиентските приложения.
Драйвери за достъп до бази данни
И при двата подхода JAVA приложението реализира връзка с конкретна база данни, като зарежда специален клас, наречен драйвер. JDBC-драйверът е специфичен за всяка база данни и се разработва от нейния производител. По тази причина драйверите за различните бази данни не са част от стандартния JAVA API. Те се предоставят безплатно от съответния производител и могат да бъдат свободно изтеглени от Internet. Така например за достъп до Oracle база е необходимо да бъде изтеглен пакетът с Oracle-специфични JAVA-класове. Квалифицираното име на Oracle-драйвера е oracle.jdbc.driver.OracleDriver. Името на драйвера за достъп до MySQL база данни пък е org.gjt.mm.mysql.Driver. След изтеглянето на jar-файла, съдържащ необходимия драйвер, той трябва да бъде съхранен на диска и пътят до него да бъде включен в CLASSPATH, за да може компилаторът и интерпретаторът да имат достъп до него.
Стандартният JAVA API включва драйвер за достъп до ODBC източници на данни, т.е. осигурява средствата за втория подход. Квалифицираното име на драйвера за достъп до ODBC източници на данни е sun.jdbc.odbc.JdbcOdbcDriver.
URL за достъп до база данни
Свързването с коя да е база данни в Internet изисква указването на нейния URL. При различните бази данни има специфични различия в оформянето на URL, но във всички случай JDBC стандартът изисква той да има следния общ вид:
- протокол:субпротокол:идентификатор_на_БД
Протоколът в съответствие с JDBC стандарта е винаги един: jdbc. Тази ключова дума указва кой стандарт се използва.
Субпротоколът показва с какъв тип драйвер се осъществява връзката. Например при свързване с ODBC източници на данни субпротоколът е odbc, с Oracle база данни е oracle и т.н.
Организация на достъпа до база данни
Достъпът до една база данни със средствата на JDBC се осъществява по стандартна процедура, която включва седем стъпки:
- Зареждане на JDBC драйвера;
- Дефиниране на URL адреса на желаната база данни;
- Установяване на връзка с базата данни;
- Създаване на Statement обект, който съдържа конкретните SQL заявки към базата данни;
- Изпълняване на формираната заявка;
- Обработка на резултатите;
- Затваряне на връзката с базата данни.
Изпълнението на всяка от изброените стъпки става с помощта на средствата, дефинирани в класовете на JDBC API.
Интерфейс Connection
Този интерфейс дефинира методи за работа с конекции към бази данни. В стандартния JAVA API не са реализирани класове, имплементиращи Connection. Единственият начин за създаване на инстанция на такъв клас е използването на метода DriverManager.getConnection().
Интерфейс Statement
Този интерфейс дава базовите средства за представяне и изпълнение на SQL заявки. Създаването на обекти от клас, имплементирал Statement става единствено с разгледаните методи на интерфейса Connection.
Интерфейс ResultSet
Този интерфейс дефинира средства за обработка на резултата от заявки от тип SELECT, стартирани с метода executeQuery(). Това е единствения начин за получаване на обекти от клас, имплементирал интерфейса ResultSet.
Интерфейс Tag
Това е базовият интерфейс за всички тагове, които не манипулират съдържанието на тялото си. Тук се дефинира протоколът на взаимодействие между класа за управление на тага и JSP страницата, наречен жизнен цикъл на тага.
Клас TagSupport
Този клас имплементира Tag интерфейса и се използва от приложенията като базов клас за дефиниране на собствени тагове. Класът TagSupport добавя към средствата на Tag две полета – pageContext, даващо достъп до контекста на JSP страницата, и id атрибутът, който дефинира идентификатор за всеки потребителски таг. Методът findAncestorWithCalss() е изключително полезен при сложни конструкции, включващи няколко вложени разнотипни тагове. С негова помощ в тага може да се получи достъп до най-близкия родителски таг, който е от определен тип.
Интерфейс BodyTag
Това е базовият интерфейс за всички тагове, които могат да манипулират съдържанието на тялото си. Той наследява Tag и допълва възможностите му, като използва и средствата на интерфейса IterationTag от същия пакет.
Клас BodyTagSupport
Този клас имплементира BodyTag интерфейса и се използва от приложенията като базов клас за дефиниране на собствени тагове, обработващи тялото си. Методът clearBody() изчиства съдържанието на обекта bodyContent, а getString() го връща във вид на стринг.
Клас TagExtraInfo
Това е помощен клас, инстанциите на който предоставят допълнителна информация за даден таг. Методите на този клас позволяват експортирането от таг класа към JSP страницата на скрипт променливи и дефинирането на правила за валидиране на стойностите на атрибутите на тага на етап компилация.
Клас TagData
Това е помощен клас, инстанциите на който осигуряват информация за атрибутите на тага и техните стойности.
Инстанция на TagData се създава автоматично от JSP машината и тя се подава на методите на класа TagExtraInfo при извикването им.
Клас VariableInfo
Това е помощен клас, всяка инстанция на който съдържа информация за една скрипт-променлива.
Описание на библиотеката тагове
Файлът с описание на библиотеката от потребителски тагове е структуриран от специални елементи по стандарта XML. Задачата на този файл е да асоциира всеки таг клас от библиотеката със съответния му потребителски таг и да представи този клас на сървъра. Името на файла е произволно, а разширението му трябва да бъде .tld – от Tag Library Descriptor.
- Елемент DOCTYPE – описва типа на документа, оформян от tld файловете. Няма отношение към броя и параметрите на таговете, описани в библиотеката;
- Елемент taglib – това е основният елемент в дескрипторния файл. Той е контейнер за всички останали елементи. От представените по-долу елементи непосредствено в taglib се съдържат tlibversion, jsp-version и tag;
- Елемент tlibversion – указва използваната версия на библиотеката. Стойност по подразбиране: 1.0 ;
Сходни статии:
- Програмиране на Java, основи на Java Йерархия на класовете за събития Моделът на делегиране за събития дефинира голям брой класове за събития. йерархия: Повечето от класовете за събития се намират в пакета java.awt.event Най горния клас...
- Архитектура на База Данни. Етапи на проектиране. Модели бази данни Понятие за архитектура на База Данни Архитектурата на База Данни включва 3 нива Информационни връзки. Модели на данни. При проектирането на база данни се преминава през няколко етапа. Най напред...
- Разпределени бази данни. Предимства и недостатъци на работата с база данни Осигурява икономия при използването на персоналните компютри, намалява грешките от централизацията на данните и нараства отговорностите към мениджърските нужди. Данните могат да бъдат разделени на части и базирани на регионален,...
- Общ модел за достъп на данни чрез ADO.NET Какво представлява ADO.NET ADO.NET е: Еволюционен, по-гъвкав наследник на ADO Система предназначена за несвързани среди Модел за програмиране със съвременна поддръжка на XML Множество от класове, интерфейси, структури и списъци,...
- IBM ABLE Java софтуерна среда IBM ABLE e разпределена софтуерна среда, базирана на Java. Характеристиките на Java го правят подходящ за създаване на агенти. По- важните му особености са: преносимост на кода, поддръжка на обектно-ориентирани...