E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

Podobne dokumenty
Zaawansowane aplikacje internetowe - laboratorium

Java Persistence API. Class powinny być zaznaczone. Kliknij przycisk Finish.

Wielowarstwowe aplikacje internetowe - laboratorium

Java Persistence API (JPA)

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

Java EE: JSF + EJB + JPA

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Java EE: JSF + EJB + JPA + CDI + BV

Projektowanie aplikacji internetowych laboratorium

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Enterprise JavaBeans (EJB)

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Zaawansowane aplikacje internetowe - laboratorium

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Aplikacje WWW - laboratorium

Wprowadzenie do Doctrine ORM

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Zaawansowane aplikacje internetowe laboratorium

Ćwiczenie dotyczące platformy Java EE zostało przygotowane z myślą o środowisku NetBeans w wersji 7.3 (do pobrania z

Zastosowanie komponentów EJB typu Session

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Web Services (SOAP) Ćwiczenie 1

Podstawowe informacje o technologii Java Persistence API - przykład

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Aplikacje internetowe i rozproszone - laboratorium

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Programowanie Obiektowe GUI

Zaawansowane aplikacje internetowe

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Aplikacje internetowe i rozproszone - laboratorium

Zaawansowane aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

Uruchamianie bazy PostgreSQL

Autor Zofia Kruczkiewicz Wzorce oprogramowania - laboratorium5_6

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Aplikacje WWW - laboratorium

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Programowanie obiektowe zastosowanie języka Java SE

I2: J2ME programowanie w NetBeans IDE Wydział Transportu PW semestr /11

Zaawansowane aplikacje internetowe laboratorium

Aplikacje WWW - laboratorium

Programowanie wielowarstwowe i komponentowe

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Informatyka I : Tworzenie projektu

Laboratorium - Udostępnianie folderu, tworzenie grupy domowej i mapowanie dysku sieciowego w Windows 7

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

UONET+ moduł Dziennik

Bazy danych raporty. 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego.

Instrukcja importu dokumentów z programu Fakt do programu Płatnik

3. Budowa prostych raportów opartych o bazę danych

Programowanie komponentowe 5

Jak utworzyć plik SIO dla aktualnego spisu?

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

Programowanie w Javie

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Instalacja i obsługa aplikacji MAC Diagnoza EW

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Jak eksportować dane z Arkusza do SIO?

Microsoft.NET: Warstwa dostępu do danych (DAL) w aplikacjach ASP.NET Web Forms

Modelowanie obiektowe - Ćw. 1.

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Java Platform Micro Edition

XML-owe bazy danych ćwiczenia 1

ACCESS ćwiczenia (zestaw 1)

11. Rozwiązywanie problemów

Laboratorium 8 ( Android -pierwsza aplikacja)

Wybierz polecenie z menu: Narzędzia Listy i dokumenty

UONET+ moduł Dziennik. Praca z rozkładami materiału nauczania

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Ćwiczenia 9 - Swing - część 1

UONET+ moduł Dziennik. Praca z rozkładami materiału nauczania

1. Zakładanie projektu Katalog typu Java Class Library do przechowywania obiektowego modelu danych projekt należy do warstwy biznesowej

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Platformy Technologiczne

Transkrypt:

Zaawansowane aplikacje internetowe Laboratorium Java Persistence. Adaptacja rozwiązania dla środowiska NetBeans 7.0.1: Łukasz Przytuła, opracowanie materiałów: Andrzej Dawidowicz Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne NetBeans IDE 7.0.1 (do pobrania z http://www.netbeans.org/downloads/index.html), oraz środowisko JDK w wersji 1.6 (lub wyższej) wymagane do instalacji NetBeans. Instalując Netbeans 7.0.1 należy zainstalować wszystkie składniki wraz z zawartymi w pakiecie serwerami aplikacji. Ćwiczenie 2 Celem ćwiczenia jest: 1) przygotowanie modelu obiektowego dla aplikacji obejmującego dwie powiązane ze sobą encje i odwzorowanie go w schemat relacyjnej bazy danych; 2) wygenerowanie za pomocą kreatora aplikacji Java EE opartej o JSF pracującej na utworzonym modelu i obsługującej trwałość poprzez Java Persistence API. Kroki ćwiczenia: 1) Utworzenie nowego projektu a) Uruchom narzędzie NetBeans IDE 7.0.1 b) Z menu głównego wybierz File New Project. Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >. c) Podaj nazwę projektu AlbumyJP

W polu Project Location powinien być wskazany katalog, w którym masz prawo zapisu. Kliknij Next>. d) Jako Server powinien być wybrany GlassFish Server 3.x a jako Java EE Version Java EE 6 Web. Kliknij Next>. e) Zaznacz Java Server Faces w panelu Frameworks. Krok ten jest niezbędny, gdyż w ostatnim etapie ćwiczenia do prezentacji danych z bazy danych będzie wykorzystana aplikacja WWW oparta o JSF.

Kliknij przycisk Finish f) Rezultat: g) Kliknij prawym przyciskiem myszy na plik index.xhtml i wybierz Run File. Powinna się uruchomić strona

Zamknij stronę. 2) Utworzenie jednostki trwałości, w ramach której obiekty aplikacji będą zachowywane w bazie danych a) Kliknij prawym przyciskiem myszy na ikonie projektu w drzewie projektów i z menu kontekstowego wybierz New Other... Następnie wybierz kategorię Persistence i typ pliku Persistence Unit: Kliknij przycisk Next > b) Wybierz Persistence Provider: EclipseLink (JPA 2.0), oraz Data Source: jdbc/sample. Upewnij się, że pole wyboru Use Java Transaction API jest zaznaczone. Jako strategię

tworzenia tabel w bazie danych (Table Generation Strategy) pozostaw Create, czyli tworzenie w momencie instalacji aplikacji jeśli nie istnieją. Kliknij przycisk Finish. Obejrzyj zawartość wygenerowanego przez kreator pliku persistence.xml w trybie XML. Zwróć uwagę na elementy <provider> i <jtadata-source> zawierające wartości odpowiadające opcjom wybranym z list rozwijanych w oknie kreatora. 3) Utworzenie klas encji Album i Wykonawca. Z każdym albumem będzie związany jeden wykonawca. Każdy wykonawca będzie posiadał kolekcję albumów. a) Kliknij prawym przyciskiem myszy na ikonie projektu w drzewie projektów i z menu kontekstowego wybierz New Other... Następnie wybierz kategorię Persistence i typ pliku Entity Class.

Kliknij przycisk Next > b) Jako nazwę klasy podaj Album, a jako nazwę pakietu encje. Pozostaw Long jako typ klucza głównego (Primary Key Type). Kliknij przycisk Finish. c) W celu utworzenia drugiej klasy, ponownie kliknij prawym przyciskiem myszy na ikonie projektu w drzewie projektów i z menu kontekstowego wybierz New Other... Następnie wybierz kategorię Persistence i typ pliku Entity Class.

Kliknij przycisk Next > d) Jako nazwę klasy podaj Wykonawca, a jako nazwę pakietu encje. Pozostaw Long jako typ klucza głównego (Primary Key Type) Kliknij przycisk Finish

e) Przejdź do edycji utworzonego pliku Wykonawca.java. Pod adnotacją @Entity dodaj wiersz z adnotacją @Table(name="WYKONAWCY"). Jeśli wprowadzona adnotacja zostanie podkreślona jako błąd, będąc kursorem w wierszu z adnotacją naciśnij kombinację klawiszy Alt-Enter i wybierz zaproponowaną opcję Add import for javax.persistence.table. f) Dodaj w klasie Wykonawca (poniżej pola id) dwa prywatne pola nazwa typu String i albumy typu Collection<Album> (nie zapomnij o zaimportowaniu java.util.collection). @Entity @Table(name="WYKONAWCY") public class Wykonawca implements Serializable { private static final long serialversionuid = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String nazwa; private Collection<Album> albumy;... g) W oknie edycji klasy Wykonawca prawym klawiszem myszy wywołaj menu kontekstowe i wybierz opcję Refactor Encapsulate fields w celu utworzenia w klasie metod set/get dla pól. Zaznacz metody set-get tylko dla pól przez siebie wprowadzonych, tzn. nazwa i albumy; Kliknij przycisk Refactor. Obejrzyj w kodzie klasy wygenerowane metody. h) Przejdź do edycji utworzonego pliku Album.java. Pod adnotacją @Entity dodaj wiersz z adnotacją @Table(name="ALBUMY"), aby obiekty klasy były składowane w tabeli o nazwie ALBUMY (domyślnie nazwa tabeli byłaby taka jak nazwa klasy w liczbie

pojedynczej). Jeśli wprowadzona adnotacja zostanie podkreślona jako błąd, będąc kursorem w wierszu z adnotacją naciśnij kombinację klawiszy Alt-Enter i wybierz zaproponowaną opcję Add import for javax.persistence.table. i) Dodaj w klasie Album (poniżej pola id) dwa prywatne pola tytul typu String i wykonawca typu Wykonawca.... @Entity @Table(name="ALBUMY") public class Album implements Serializable { private static final long serialversionuid = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String tytul; private Wykonawca wykonawca; j) W oknie edycji klasy Album prawym klawiszem myszy wywołaj menu kontekstowe i wybierz opcję Refactor Encapsulate fields w celu utworzenia w klasie metod set/get dla pól. Zaznacz metody set-get tylko dla pól przez siebie wprowadzonych, tzn. tytul i wykonawca; Kliknij przycisk Refactor. Obejrzyj w kodzie klasy wygenerowane metody. 4) Zdefiniowanie związku 1:N między klasami encji Wykonawca i Album. a) Oznacz w klasie Wykonawca pole albumy adnotacją @OneToMany(mappedBy="wykonawca")

... @OneToMany(mappedBy="wykonawca") private Collection<Album> albumy; Zaimportuj klasę adnotacji tak, jak wcześniej dla adnotacji @Table (Alt Enter, itd.) b) Oznacz w klasie Album pole wykonawca adnotacją @ManyToOne... @ManyToOne private Wykonawca wykonawca; Zaimportuj klasę adnotacji tak, jak wcześniej dla adnotacji @Table (Alt Enter, itd.) c) zapisz wszystkie pliki 5) Ostatnia część ćwiczenia to wygenerowanie za pomocą kreatora aplikacji JSF a) Kliknij prawym przyciskiem myszy na ikonie projektu w drzewie projektów i z menu kontekstowego wybierz New JSF Pages from Entity Class. Kliknij Add All>> a następnie Next> b) W oknie

kliknij Finish. Wynikiem działania kreatora jest zestaw czterech stron JSF dla każdej encji i towarzyszące im klasy pomocnicze po dwie dla każdej encji. Rozwiń wszystkie gałęzie drzewa projektu w oknie Projects, aby obejrzeć wygenerowane pliki. c) Dla każdej encji wygenerowane zostały cztery strony JSF (Create.xhtml, Edit.xhtml, List.xhtml, View.xhtml), umożliwiające przeglądanie, edycję, dodawanie i usuwanie wykonawców i albumów. W celu zapoznania się z efektem działania kreatora otwórz plik album/list.xhtml. Jest to strona JSF, której komponenty interfejsu odwołują się do zarządzanego komponentu JavaBean o nazwie album. Następnie otwórz plik konfiguracyjny aplikacji JSF faces-config.xml. Znajdź deklarację zarządzanego komponentu album. Jest on obiektem wygenerowanej przez kreator klasy AlbumController obsługującej komunikację z bazą danych dla encji Album. Podejrzyj źródło klasy AlbumController. Znajdź w klasie adnotacje wstrzykujące obiekty UserTransaction i EntityManagerFactory. Obejrzyj wywołania metod Java Persistence API w metodach klasy. d) Uruchom aplikację wybierając opcję Run File z menu kontekstowego dla pliku index.xhtml. e) Dodaj dwóch wykonawców (w pierwszej kolejności), a następnie po dwa albumy dla każdego z nich. Przetestuj dokładnie bazę (np. spróbuj usunąć wykonawcę przypisanego do jakiegoś albumu). f) Na liście wyświetlającej albumy w kolumnie 'wykonawca' wyświetlają się identyfikatory wykonawców. Co należy zmienić w kodzie aplikacji, aby wyświetlały się nazwy? g) Wygenerowana aplikacja zawiera teksty w języku angielskim. Oczywiście można zmodyfikować kod poszczególnych stron tłumacząc teksty nagłówków i opisy linków na język polski. Przetłumacz przykładowo jeden z komunikatów. h) Problem: rozwiń gałąź projektu: Enterprise Beans AlbumFacade Bean Methods. Znajdź metodę

protected EntityManager getentitymanager() { return em; } Możesz dopisać przed nią adnotację @Override (dlaczego?) i) Problem: rozwiń gałąź projektu: Enterprise Beans WykonawcaFacade Bean Methods. Znajdź metodę protected EntityManager getentitymanager() { return em; } Możesz dopisać przed nią adnotację @Override (dlaczego?)