понедельник, 11 марта 2013 г.

2й - Практикум. Oracle ADF. Подключение (Connection) к БД, bindings, tree, menu

В этом практикуме подключимся к БД, построим древовидное меню, и др.


Для подключения к БД будем использовать БД Oracle XE. Который можно поставить локально и использовать схему из поставки HR.
Сразу хочу заметить, для работы с Oracle XE, для Weblogic необходимо указать в файле 
C:\Users\arylkov\AppData\Roaming\JDeveloper\system11.1.2.3.39.62.76.1\DefaultDomain\bin\setDomainEnv.cmdрегиональные настройки
set JAVA_OPTIONS=%JAVA_OPTIONS% -Duser.region=us -Duser.language=en
 Для проекта Model1 создадим новое БД подключение 
 
После чего импортируем таблицу БД - "Menu" (таблица дана ниже в скрипте)


Перед тем как будет предложен импорт, необходимо выбрать mapping типов БД на типы Java. Будем использовать  mapping "Java Extended for Oracle".




Такой mapping можно сделать один раз на проект.
Подготовим структуру, данные для построения древовидного меню.
create table MENU
(
  ID       NUMBER(10) not null,
  PID      NUMBER(10),
  NAME     VARCHAR2(50 CHAR),
  TASKFLOW VARCHAR2(250 CHAR)
)
;
-- Create/Recreate primary, unique and foreign key constraints 
alter table MENU
  add constraint PK_MENU primary key (ID)
;

insert into MENU (ID, PID, NAME, TASKFLOW)
values (1, null, 'Сотрудники', null);
insert into MENU (ID, PID, NAME, TASKFLOW)
values (2, 1, 'Менеджеры', null);
insert into MENU (ID, PID, NAME, TASKFLOW)
values (3, 1, 'Специалисты', null);
commit;

выполним скрипт через SQLPlus. > @file.sql


Теперь можно выбрать таблицу, затем для нее сделать запрос. Таблицы и запросы лучше разносить по разным пакетам. Таблица - это Entity Object (EO), описание типа объекта БД, создается для всех сессий в одном экземпляре. Запрос View Object (VO), это уже экземпляр набора данных, создается свой для каждой сессии.

 По умолчанию будет предложено создание Application module, это контейнер в котором будут размещены все логически связанные VO.

Для VO - MenuView делаем ViewLink

Это описание отношения между разными или одним и тем же VO. В случае нашего дерева, это отношение между ID и PID - MenuView.
 Теперь можно перейти на "Data Controls" и переащить на форму main.jsff в левый фасет (область), и при отпускании выбрать "ADF Tree"
Настроить этот компонент следующим образом:
 Обратите внимание на добавление отношения через "+"
Вернемся к VO MenuView и добавим ViewCriteria.

Это подготовленные декларативно условия where, которые затем можно программно или декларативно использовать. В этом условии отберем только root узлы. Для того что бы например декларативно применить условие, можно открыть Application Module и в нем уже выбрать редактирование VO

Теперь если запустить приложение  http://127.0.0.1:7101/myadf/faces/index , то откроется форма авторизации, после чего попадем на форму (main) и в левом углу будет меню, которое можно раскрывать, закрывать :-).


Источник:

Using Trees to Display Master-Detail Objects
http://docs.oracle.com/cd/E16162_01/web.1112/e16182/web_masterdetail.htm#BJEFHDIJ


 Исходный код


   

Комментариев нет:

Отправить комментарий