Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 6.

Podobné prezentace


Prezentace na téma: "VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 6."— Transkript prezentace:

1 VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 6.

2 Program  Diskuse nad domácím úkolem  Aplikace Fotoalbum  Adaptace na JPA  Práce se stavovým EJB  On-line operace nad objektem fotografie  Programovací vzor Gateway využívající stavový EJB 2

3 Proměna Photo v JPA entitu  Anotujte třídu Photo  javax.persistence.Entity  Přidejte privátní atribut třídy id typu int  Unikátní klíč záznamu v databázi  Vytvořte getter a setter  Getter a indikuje unikátní instruuje JPA ke generování hodnoty 3

4 Proměna Photo v JPA entitu  Getter getImage označuje sloupec s binárním či textovým obsahem  Entita Photo bude atributem stavového EJB, proto musí být serializovatelná  implements Serializable 4

5 Úprava DAO  Rozhraní AlbumDAO  Změňte návratový typ metody updatePhoto na Photo  Třída AlbumDAOBean  Nahraďte původní zdrojový kód za kód z poznámek 5

6 Album DAO 6

7 Soubor persistence.xml  V adresáři ejb/src/main/resources/META-INF vytvořte soubor persistence.xml  Slouží ke konfiguraci JPA  Použijeme specifické vlastnosti implementace EclipseLink nastavení úrovně logování instrukce k automatickému vytváření db tabulek 7

8 Soubor orm.xml  V adresáři ejb/src/main/resources/META-INF vytvořte soubor orm.xml  Konfigurace mapování mezi entitami a tabulkami  Lze v něm předdefinovat dotazy 8

9 Definice datového zdroje  Provádí se v administrátorské konzoli  Otevřete panel Resources/JDBC/JDBC Resources  Vytvořte nový prostředek  Do políčka JNDI Name zadejte název datového zdroje, jak je uvedeno v persistence.xml  jdbc/myDS  Položku Pool Name nastavte na DerbyPool  Poznámka pro ty, co neprogramují v NetBeans  Je třeba nainstalovat databázi (rozbalení ZIPu) spuštění: bin/startNetworkServer.bat 9

10 Build&Deploy 10

11 PhotoGateway  Stavový EJB  Zprostředkovává klientovi objekt fotografie  Entitu (objekt) dostane klient "živou", tj. "managed"  Výhody:  úpravy se provádějí v paměti voláním metod na objektu fotografie  při ukládání není třeba provádět náročný "merge", jelikož entita je stále v JPA keši  tzv. lean design – neobsahuje nic nadbytečného, štíhlý 11

12 Aplikační vrstva 12

13 PhotoGateway – zdrojový kód 13

14 PhotoGateway - poznámky  Stavový bean, jehož stav je odkaz na předaný objekt fotografie  Je použit rozšířený perzistentní kontext  Život objektů v kontextu je vymezen životem beanu  Nekončí s každým voláním metody  Kromě metody save jsou ostatní metody volány mimo transakci (jsou = TransactionAttributeType.NOT_SUPPORTED)  Volání metody save zahájí novou transakci. Při jejím ukončení dojde k uložení (commit) perzist. kontextu. 14

15 Prezentační vrstva 15

16 PhotoDetailPageBean 16 Patří do webového modulu

17 AlbumPageBean 17 Patří do webového modulu

18 Úprava AlbumServlet  AlbumServlet bude pracovat se stavovými beany, které není možné injektovat do atributu servletu použijeme vyhledání (lookup) v ENC (JNDI) kvůli tomu je zapotřebí konfigurace ENC, zde pomocí anotací  AlbumServlet bude coby kontroler pracovat s modelem v podobě AlbumPageBean případně s odkazovaným PhotoPageBean AlbumPageBean je kořen modelu a je uložen v session 18

19 Životní cyklus AlbumPageBean  Metody v AlbumServlet pro práci s AlbumPageBean 19

20 Úprava performAction 20

21 Akce 'detail' Větev v performAction 21

22 Stránka detail.jsp  Zobrazuje fotografii spolu s názvem a popisem  V spodní polovině stránky jsou k dispozici akce pro  změnu velikosti fotky  rotaci (neimplementováno)  uložení rozpracovaného stavu fotky a návrat  obnovení fotografie z databáze  zrušení úprav a návrat 22

23 Diagram stránek 23

24 Úprava stránky upload.jsp  Náhrada stávající tagu jsp:useBean za  Nastavení hlavičky pro řízení keše prohlížeče  Úprava cyklu c:forEach 24

25 Úprava PhotoServlet  V případě, že není zadán název fotky v URL, pokusí se nalézt kontextovou fotku  AlbumPageBean.getPhotoDetail().getPhoto() 25

26 Akce v detail.jsp  Pro každou akci přibude jeden 'if' v hlavním rozvětvení v metodě AlbumServlet.performAction  Každá akce je podchycena odpovídající 'do' metodou v servletu  Metoda doResize pracuje s objektem fotky  Metody doCancel, doSave, doRefesh pracují s gateway  Metody doCancel a doSave uzavírají model detailu fotky  getAlbumPageBean(request).setDetailBean(null) 26

27 Domácí úkol  Přidejte do entity Photo atribut modified, který bude udržovat datum a čas poslední úpravy fotografie.  Dále na entitě Photo vytvořte posluchačskou metodu, která bude nastavovat atribut Photo na aktuální čas při úpravách fotografie.  Rozšiřte HTML tabulku se seznamem fotografií o sloupec, který bude zobrazovat datum poslední úpravy.  Do detailu fotografie přidejte pole, které bude také zobrazovat hodnostu tohoto atributu. 27


Stáhnout ppt "VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 6."

Podobné prezentace


Reklamy Google