Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2 Книга 3" -> 240

Технологии профаммирования на Java 2 Книга 3 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 Книга 3 — М.: Бином-Пресс, 2003. — 672 c.
ISBN 5-9518-0051-Х
Скачать (прямая ссылка): tehprogrammjava220033.pdf
Предыдущая << 1 .. 234 235 236 237 238 239 < 240 > 241 242 243 244 245 246 .. 271 >> Следующая

63 lastName = address.getLastName();
64 streetAddressLinel = address.getStreetAddressLinel();
65 streetAddressLine2 = address .getstreetAddressLine2();
66 city = address.getCity();
67 state = address.getState();
68 zipCode = address.getZipCode();
69 country = address.getCountry();
70 phoneNumber = address .getPhoneNumber(); 71
72 ) Jl конец метода setAddressModel 73
74 II создание EJB-компонента Address с использованием заданного
объекта AddressModel
75 public Integer ejbCreate( AddressModel address )
76 throws CreateException
77 {
78 II извлечение уникального значения для первичного ключа
79 //с использованием EJB-компонента SequenceFactory
80 try {
81 Context initialContext = new InitialContext(); 82
83 Il поиск EJB-компонента SequenceFactory
84 Object object = initialContext.lookup{
85 "java:comp/env/ejb/SequenceFactory" ); 86
87 SequenceFactoryHome sequenceFactoryHome =
88 ( SequenceFactoryHome )
89 PortableRemoteObject.narrow (
90 object, SequenceFactoryHome.class ); 91
92 Il нахождение последовательности для EJB-компонента Address
93 SequenceFactory SequenceFactory =
592
Глава 12
94
95 96 97 98 99
100 101 102
103 104 105
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
124
sequenceFactoryBome.findByPrimaryKey< "Address" );
II извлечение следуйтего имеющегося идентификатора addressID addressID = sequenceFactory.getNextID();
Il задание идентификатора addressID для адреса
(первичный ключ) address .setAddressID( addressID );
Il использование объекта AddressModel для установки нового адреса
setAddressModel( address ); } 11 конец блока try
I/ обработка исключения при использовании EJB-компонента
SequenceFactory catch ( Exception exception ) {
throw new CreateException( exception.getMessage() );
>
Il контейнер EJB будет возвращать удаленную ссылку return null;
} Il конец метода ejbCreate
11 выполнение необходимых после создания объекта действий public void еjbPostCreate( AddressModel address ) {}
Il установка контекста EntityContext
public void setEntityContext( EntityContext context ) і
)
entityContext = context;
126 127 128 129
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
/I сброс контекста EntityContext public void unsetEntityContext() {
entityContext = null;
}
It активация экземпляра EJB-компонента Address public void ejbActivate()
<
)
addressID = ( Integer ) entityContext.getPrimaryKey();
11 пассивация экземпляра EJB-компонента Address
public void ejbPassivate()
(
addressID = null;
}
Il удаление экземпляра EJB-компонента Address public void ejbRemove() {}
Практический пример корпоративного приложения. Бизнес-логика: часть 2 593
147 // сохранение данных EJB-компонента Address в баае данных
148 public void ejbStore() {} 149
150 Il загрузка данных EJB-компонента Address из базы данных
151 public void ejbLoad() {}
152 }_____
Рис 12.9. Реализация AddressEJB удаленного интерфейса Address
Метод getAddressModel (строки 35-55) создает объект AddressModel, устанавливает для его свойств значения открытых элементов данных EJB-компонента Address и возвращает объект AddressModel вызвавшему процессу. Метод setAdd-ressModel (строки 58-72) представляет собой утилитарный метод, который принимает в качестве аргумента объект AddressModel и обновляет значения в элементах данных EJB-компонента AddressEJB.
Контейнер EJB вызывает метод ejbCreate (строки 75-115) для создания нового EJB-компонента AddressEJB. Каждый EJB-компонент Address должен иметь уникальный идентификатор addressID для своего первичного ключа. Метод getNextID (строка 97) генерирует этот уникальный идентификатор. В строке 100 устанавливается значение идентификатора addressID в объекте AddressModel. В строке 103 объект AddressModel передается методу set AddressModel для завершения инициализации EJB-компонента AddressEJB.
12.3.3. Собственный интерфейс AddressHome
Интерфейс AddressHome (рис. 12.10) предоставляет методы для создания и нахождения EJB-компонентов Address. Метод create (строки 18—19) принимает в качестве аргумента объект AddressModel. Контейнер EJB вызывает метод ejbCreate (рис. 12.9), когда клиент вызывает метод create. Метод fmdByPrimaryKey (строки 22-23) находит имеющийся EJB-компонент Address, используя его первичный ключ addressID, и возвращает удаленную ссылку на EJB-компонент Address.
12.3.4. Класс AddressModel
Класс AddressModel (рис. 12.11) представляет собой класс модели, который реализует интерфейс XMLGenerator и метод getXML для генерирования XML-описания адреса. Класс AddressModel содержит свойства (строки 17-149) для каждого открытого элемента данных в реализации AddressEJB (рис. 12.9). Метод getXML (строки 152-212) формирует элемент XML, содержащий дочерние элементы для каждого из свойств класса AddressModel.
1 // AddressHome.java
2// AddressHome - собственный интерфейс для EJB-компонента с данными Address.
3 package com.deitel.advjhtpl.bookstore.ejb; 4
5// Набор базовых пакетов Java б import j ava.rmi.RemoteException; 7
Предыдущая << 1 .. 234 235 236 237 238 239 < 240 > 241 242 243 244 245 246 .. 271 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100