betacode

Шаги по созданию веб-приложения ADF Fusion с использованием ADF Business Components

  1. Цель руководства
  2. База данных
  3. Создать ADF (ADF Fusion Web Application)
  4. Создать соединение к базе данных
  5. Создать Application Module
  6. Создать Entity Object на Model Project
  7. Создать View Object по умолчанию

1. Цель руководства

В данной статье я покажу вам как создать приложение ADF Fusion Web ,используя ADF Bussiness Components.
Одно приложение ADF обычно включает 2 проекта, или можно сказать включает 2 модуля (Model & ViewController), как в изображении ниже:
Цель статьи включает:
  • Создать приложение ADF с видом ADF Fusion Web Application.
  • Создать odel Project и ViewController Project.
  • Создать соединение (connection) к базе даных Oracle.
  • Создать Application Module на Model Project.
  • Создать Entity Object на Model Project.
  • Создать View Object по умолчанию на Model Project и зарегистрировать их с Application Module.

2. База данных

В данной статье я использую HR Schema, это модель schema в Oracle, готовый при установке Oracle, если нет, то вы можете создать данную Schema по руководству ниже:
  • HR Schema

3. Создать ADF (ADF Fusion Web Application)

На JDeveloper выберите:
  • File/New/From Gallery...
Выбрать "ADF Fusion Web Application":
Далее JDeveloper создаст Model Project, с названием по умолчанию "Model", вы можете дать другое название если хотите. Технологии использующиеся для данного проекта включают:
  • Java
  • XML
  • ADF Bussiness Components.
Далее JDeveloper создает ViewController Project, с названием по умолчанию "ViewController", вы можете дать другое название если хотите. Технологии использующиеся для данного проекта включают:
  • ADF Faces
  • ADF Page Flow
  • Java
  • JavaServer Faces (JSF)
  • JSP and Servlets
  • Trinidad
  • XML,..
Ваше приложение создано, оно похоже на изображение ниже:

4. Создать соединение к базе данных

Далее вам нужно создать соединение к базе данных Oracle, здесь я подключусь к HR Schema.
На JDeveloper выберите:
  • File/New/From Gallery...
Введите параметры для подключения к HR Schema. Потом нажмите "Test Connection" для проверки соединения. Если все хорошо, вы получите оповещение успешного соединения (Success!).
Connection (соединение) создано, вы можете увидеть в окне "Application Resources":

5. Создать Application Module

"Application Module" это важный компонент приложения ADF. Похож на мост между ViewController Project и Model Project.

Application Module расположен в Model Project.
ViewController может только получить доступ в объекты или методы Model если она зарегистрированы с Application Module. (Смотрите иллюстрацию выше).
Чтобы создать Application Module, на JDeveloper выберите:
  • File/New/From Gallery...
    • >> Business Tier/ADF Business Components/Application Module
Выберите соединение (connection) HR, которое вы создали в предыдущем шаге.
  • Package: org.o7planning.adf.model.module
  • Name: AppModule
Далее JDeveloper подсказывает вам генерировать класс для "Application Module". Отметьте выбрать "Generate Application Module class" и нажмите "Next" чтобы продолжить:
Ваш "Application Module" создан:
После генерирования Application Module, объекты зарегистрированные с ним будут видны в регионе "Data Controls", и могут быть использованы другими проектами (Как ViewController). На данный момент ваш Application Module не имеет никаких объектов или методов.

6. Создать Entity Object на Model Project

Далее вам нужно создать Entity Object. Каждый Entity Object представляет одну таблицу в базе данных, и они имеют отношения друг с другом через Association (Ассоциации).
На JDeveloper выберите:
  • File/New/From Gallery...
    • >> Business Tier/ADF Business Components/Business Components from Tables...
Выберите соединение (connection) HR, которое вы создали в предыдущем шаге.
Назовите package использованный для содержания Entity:
  • org.o7planning.adf.model.entities
Выберите таблицы которым вы хотите создать соответствующие Entity Object.
Далее JDeveloper подсказывает вам создать Entity-based View Object (View Object по умолчанию), может вам они не понадобятся, поэтому можно пропустить и создать позже, если они понадобятся вашему приложению.
Далее JDeveloper подсказывает вам создать "Query based View Object" (View Object основываются на запросе). Они так же могут вам не понадобиться.
Далее JDeveloper подсказывает вам зарегистрировать объекты в предыдущем шаге с Application Module. Вы можете пропустить этот шаг.
Entity Object созданы на Model Project. Каждая таблица в базе данных будет соответствовать с созданным Entity Object. Foreign Key в базе данных будут соответствовать с Association (Ассоциацией). Смотрите иллюстрацию ниже:
Примечание: Если JDeveloper автоматически создает еще другой Application Module вы можете его удалить. Приложение ADF позволяет один или более Application Module.

7. Создать View Object по умолчанию

  • Entity Object это компонент приложения ADF BC, соответствует таблице на базе данных.
  • View Object это компонент приложения ADF BC, соответствует VIEW базы данных (Или любому запросу).
  • View Object по умолчанию является View Object созданный из Entity Object.
Создание View Object по умолчанию не является обязательным, зависит от вашего приложения. Вы можете зарегистрировать созданные View Object с Application Module. Зарегистрированные View Object с Application Module могут быть использованы другими проектами.
Создать View Object по умолчанию
Нажать на правую кнопку мыши на Entity Object и выбрать "New Default View Object":
Ввести:
  • Package: org.o7planning.adf.model.views
  • Name: V00Departments
View Object по умолчанию (V00Departments) создан.
Далее вам нужно создать класс Java для только что созданного View Object.
Индентично, вы продолжаете создавать View Object по умолчанию для Employees.
Зарегистрировать View Object с Application Module:
Открыть Application Module:
Выбрать View Object и переместить в "Data Model".
На данный момент 2 View Object (V00Departments & V00Employees) зарегистрированы на Application Module, и другие проекты могут получить доступ использовать их через "Data Controls":