Архітектура DataExpress в JBuilder, Інші СУБД, Бази даних, статті

Розробка додатків, пов’язаних з базами даних, є ключовою особливістю JBuilder Professional і Enterprise. JBuilder Enterprise призначений також для розробки розподілених додатків.


Компоненти DataExpress були розроблені як окремі модулі, для того щоб забезпечити поділ ключових функціональних можливостей. Таке рішення дозволяє компонентам DataExpress підтримувати широкий коло додатків. Модульні аспекти архітектури DataExpress включають:


Основні функціональні можливості DataSet
Це колекція функціональних можливостей обробки даних, доступний додатків, що використовують DataExpress. Багато що з цього може застосовуватися шляхом використання декларативних властивостей і параметрів настройки подій. Виконувані функції включають: навігацію, доступ / оновлення даних, упорядкування / фільтрацію даних, підтримка зв’язок master-detail, пошук, обмеження, значення за умовчанням, і т.д.


Незалежність джерела даних
Витяг і оновлення даних з джерел типу серверів Oracle або Sybase виділені в два ключових інтерфейсу: Provider / Resolver. Повністю виділивши вилучення та оновлення даних, легко створити нові компоненти Provider / Resolver для нових джерел даних. Є два виконання Provider / Resolver для стандартних драйверів JDBC, які забезпечують доступ до таких баз даних як Oracle, Sybase, Informix, InterBase, DB2, MS SQL Server, Paradox, Base, FoxPro, Access та ін У майбутньому Borland і сторонні виробники зможуть створювати власні версії компонента Provider / Resolver для EJB, серверів додатків, SAP, BAAN, IMS, CICS, і т.д.


Вбудовувані сховища даних (Pluggable storage)
Коли дані витягуються з компонента Provider, вони кешуються в компоненті DataSet. Всі редакційні зміни, зроблені в кешируємой DataSet, відстежуються і Resolver знає, що слід потім обновити в джерелі даних. DataExpress має дві опції для збереження Кешована даних: MemoryStore – значення за умовчанням, і DataStore. MemoryStore кешує всі дані і редакційні зміни даних в оперативній пам’яті. DataStore використовує Pure Java, невелику, високоефективну, вбудовану базу даних для кешування даних і змін в них. DataStore ідеально підходить для обчислень на немережевих / мобільних комп’ютерах, асинхронної реплікації даних, і невеликих додатків баз даних.


Забезпечення зв’язування даних з візуальними компонентами
Компоненти DataSet з DataExpress забезпечують потужний програмований інтерфейс, так само як і пряме зв’язування даних безпосередньо до компонентів, розпізнає дані, одним клацанням миші. JBuilder поставляється з базуються на Swing візуальними компонентами, які безпосередньо пов’язані з компонентами DataSet.


Переваги від використання модульної архітектури DataExpress полягають в наступному:


Мережеві обчислення
Як уже згадувалося, підхід Provider / Resolver дає два явних переваги щодо довільних джерел даних. Виділимо ще два виграшних моменти:



Швидка розробка інтерфейсів користувача
Набори даних (DataSets) ідеально підходять для швидкого формування інтерфейсів користувача додатків, що працюють з базами даних, так як вони можуть бути пов’язані з компонентами, розпізнають дані, простою настройкою властивостей.


Мобільні обчислення
Завдяки введенню компонента DataStore, додатки DataExpress мають мобільну базу даних, яка зберігає свій стан. DataStore може містити множинні набори даних, довільні файли і об’єкти Java. Це дозволяє зберігати в єдиному файлі повне стан додатку. Компоненти DataSets мають вбудовану технологію реплікації для збереження та узгодження між редакційними змінами в скопійованих даних і джерелом даних.


Вбудовувані програми
Невелика високоефективна база даних DataStore ідеальна для вбудованих додатків і підтримує повні функціональні можливості і семантику компонента DataSet.


Для отримання додаткової інформації по архітектурі DataExpress, відвідайте сайт Borland www.borland.com/jbuilder/, Де є “White papers” по цій темі.


Пакети Borland, пов’язані з базами даних



Основні функціональні можливості, необхідні для зв’язку з даними, містяться в пакетах com.borland.dx.dataset, com.borland.dx.sql.dataset і com.borland.datastore. Компоненти в цих пакетах формують як зв’язок між додатком і його джерелом даних, так і поведінку, необхідне для управління даними.


Основні класи і компоненти в пакетах com.borland.dx.dataset, com.borland.dx.sql.dataset і com.borland.datastore перераховані нижче разом з коротким описом в таблиці. В крайньому справа стовпці цієї таблиці наведені часто використовувані властивості класу або компонента. Деякі з них самі по собі є об’єктами, що володіють цілим рядом властивостей. Ці комплексні властивості об’єктів закінчуються словом Descriptor і містять ключові властивості, які зазвичай повинні бути встановлені для компоненти, щоб його можна було використовувати.








































































Компонент / клас  Опис  

Часто використовуються властивості Бази даних

ConnectionDescriptor

Компонент, необхідний для доступу до даних, збереженим на віддаленому сервері;
компонент бази даних, керуючий підключенням JDBC до бази даних сервера SQL.


Див “Connecting to a database” (“Підключення до бази даних”) для більш докладного опису та навчальної програми використання цього компонента.


Об’єкт ConnectionDescriptor містить особливості підключення драйвера, URL, ім’я користувача, і пароль. Задіюється при використанні властивості Connection.

DataSet
 

Абстрактний клас, який регулює основне поведінка набору даних; забезпечує також інфраструктуру зберігання даних, підтримуючи двомірну матрицю, яка організована в рядки і стовпці. Є концепція поточної позиції рядка, який дозволяє вам переміщатися по рядках даних і управляє “псевдозапісью”, зберігаючи поточну нову або відредаговану запис, поки вони не зареєстровані в DataSet. Оскільки DataSet – це спадкоємець ReadWriteRow, в нього закладені способи зчитувати і проставляти значення полів.

 
SortDescriptor

Об’єкт SortDescriptor містить властивості, які впливають на черговість звернення до даних і відображення їх у компоненті UI.


Навчальний посібник можна знайти в “Sorting data” (“Сортування даних”).


Встановлюється з використанням властивості сортування.

MasterLinkDescriptor

Об’єкт MasterLinkDescriptor містить властивості для управління відносинами master-detail між двома компонентами DataSet.


Навчальний посібник см. в “Establishing a master-detail relationship” (“Встановлення відносин master-detail”).


Задіюється при використанні властивості MasterLink для DataSet.

StorageDataSet

Клас, який розширює DataSet, забезпечуючи виконання збереження даних і управління структурою DataSet.


Ви заповнюєте компонент StorageDataSet даними, витягуючи інформацію з віддаленої бази даних (типу InterBase або Oracle), або імпортуючи дані, збережені в текстовому файлі. Це робиться шляхом звернення до одного з його підкласів: QueryDataSet, ProcedureDataSet, або TableDataSet.


Властивість TableName визначає джерело даних компонента StorageDataSet.


Властивість MaxRows визначає максимальне число рядків, які DataSet може спочатку утримувати.


Властивість ReadOnly управляє доступом до запису даних.

DataStore

Компонент DataStore забезпечує заміну для MemoryStore, що дає можливість постійного збереження даних. DataStore підтримує високоефективне кешування даних і компактне збереження стану об’єктів для DataExpress DataSets, довільних файлів, і об’єктів Java. Компонент DataStore використовує єдиний файл для збереження одного або більше потоків даних. Файл DataStore має ієрархічну каталогову структуру, яка пов’язує назву та стан каталога зі специфічним (конкретним) потоком даних. З DataStore можна працювати, як з будь-якою базою даних SQL – ви можете підключатися до нею, як підключалися б до будь-якого сервера, посилати SQL запити, і т.д.


Більш детальний опис компонента DataStore см. в “Persisting and storing data in a DataStore” in “Database Application Developer” s Guide “(” Х поранення даних і станів даних в DataStore “) в” Керівництво Розробника Програми Бази даних “, і в” The DataStore User “s Guide” (“Керівництво користувача DataStore”).


Кешування і стійкість StorageDataSets в DataStore досяжні шляхом настройки необхідних параметрів двох властивостей StorageDataSet, званих Store і StoreName. За замовчуванням, всі StorageDataSets використовують MemoryStore, якщо властивість Store не встановлено. В даний час MemoryStore і DataStore – єдині опції для властивості Store. Властивість StoreName – це унікальне назва, пов’язане з даним StorageDataSet в DataStore.

DataStoreDriver

DataStoreDriver – драйвер JDBC для DataStore.


Драйвер підтримує як локальний, так і віддалений доступ. Обидва типи доступу вимагають ім’я користувача (будь-яка послідовність символів, без попередньої установки) і порожній пароль.

 
QueryDataSet

Компонент QueryDataSet зберігає результат SQL-запиту, виконуваного на сервері баз даних. Цей компонент працює з компонентом Database, щоб підключитися до сервера баз даних, і виконує зазначений запит з параметрами (якщо такі є). Як тільки результат буде збережений в компоненті QueryDataSet, Ви можете працювати з даними, використовуючи DataSet API.


Більш докладний опис і навчальний посібник з цього компоненту см. в “Querying a database” (“Запити до бази даних”).


Задіюється при використанні властивості Query.

ProcedureDataSet Компонент ProcedureDataSet містить результати роботи процедури, виконаної на сервері баз даних. Цей компонент працює з компонентом бази даних, аналогічно компоненту QueryDataSet. Більш докладний опис і навчальний посібник з цього компоненту см. в “Obtaining data through a stored procedure” (“Отримання даних в результаті процедури збереження”).  
ProcedureDescriptor

Об’єкт ProcedureDescriptor включає інструкцію SQL, параметри, компоненти бази даних та інші властивості.

Задіюється при використанні властивості компонента ProcedureDataSet.
TableDataSet Використовуйте цей компонент при імпорті даних з текстових файлів. Цей компонент розширює клас DataSet. Він імітує функціональні можливості сервера SQL, тільки без підключення до сервера. Більш докладний опис і навчальний посібник з цього компоненту см. в “Importing data from a text file” (“Імпорт даних з текстового файлу”).

Властивість (Inherited) DataFile (Успадкований Файл Даних) визначає ім’я файлу, з якого були завантажені дані в DataSet і в який слід зберігати дані.

DataSetView

Цей компонент забезпечує додаткове “подання” даних в існуючому StorageDataSet. Він має своє власне (успадковане) властивість Sort, яке дозволяє, даючи нові значення, отримувати різні витребувані представлення даних. Він має також фільтраційні і навігаційні можливості, які є незалежними від пов’язаного з ним StorageDataSet.


Більш докладний опис і навчальний посібник з цього компоненту см. в “Presenting an alternate view of data” (“Отримання додаткового представлення даних”).

Властивість StorageDataSet вказує на компонент, що містить дані, подання яких він забезпечує.
Column

Column (Стовпець) представляє набір всіх рядків даних певного виду, наприклад, всі значення Name в таблиці. Column отримує своє значення, коли DataSet піддається обробці або в результаті обчислень.


Column управляється своїм компонентом StorageDataSet.


Більш докладний опис і навчальний посібник з цього компоненту см. в “Working with columns” (“Робота зі стовпцями”).


Ви можете налаштувати властивості в стовпцях таким чином, щоб опції настройки, які зачіпають повний стовпець даних, наприклад, шрифт, були розміщені в одному місці. Інструментальні засоби проекту JBuilder відкривають доступ до властивостей стовпців, при подвійному натисканні на будь StorageDataSet у вмісті панелі, після чого можна вибрати стовпець, з яким ви хочете працювати. Властивості та події вибраного компонента Column відображаються або в проектувальника Column (тільки властивості), або в інспектора Column і можуть бути відредаговані в будь-якому місці.

 
DataRow

Компонент DataRow – це набір даних всіх стовпців для окремого рядка, де кожен рядок – закінчена запис інформації. Компонент DataRow використовує ті ж самі стовпці DataSet, в якому він був створений.


Назви стовпців в DataRow – це назви полів.


З DataRow зручно працювати при порівнянні даних у двох рядках або при пошуку даних в DataSet.


Його можна використовувати у всіх методах DataSet, які вимагають ReadRow або ReadWriteRow.

ParameterRow

Компонент ParameterRow має Column для кожного стовпця пов’язаного набору даних, який ви можете запитати. Помістіть значення, які ви хочете використовувати в запиті, у ParameterRow і зв’яжіть їх з запитом через назви їх параметрів (які є назвами стовпців ParameterRow).


Більш докладний опис і навчальний посібник з цього компоненту см. в “Using parameterized queries to obtain data from your database” (“Використання параметризованих запитів для отримання даних з вашої бази даних “).

 
DataModule

DataModule – це інтерфейс пакета com.borland.dx.dataset. Клас, який представляє DataModule, буде визнаний JBuilder як елемент, який містить різні компоненти набору даних, згруповані в модуль даних. Ви створюєте новий, порожній модуль даних, вибираючи значок Data Module в діалозі меню File / New. Потім, використовуючи палітру компонентів, ви розміщуєте в модулі різні об’єкти DataSet, і забезпечуєте підключення, запити, сортування, і настройку бізнес-логіки. Модулі даних спрощують повторне і багаторазове використання набору компонентів DataSet. Наприклад, один або більше класів UI у вашому додатку може використовувати загальнодоступний примірник створеного вами модуля даних DataModule.


Більш докладний опис і навчальний посібник з цього компоненту см. в “Using data modules to simplify data access” (“Використання модулів даних спростити доступ до даних”).

 

У програмних пакетах com.borland.dx.dataset, com.borland.dx.sql.dataset і com.borland.datastore є багато інших класів і компонентів, а також кілька підтримуваних класів є і в інших пакетах типу Util і View. Детальна інформація про пакети і класах бібліотеки DataExpress може бути знайдена в документації DataExpress LibraryReference.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*