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

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

Wielowarstwowe aplikacje internetowe - laboratorium

Zaawansowane 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 >.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

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

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

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

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

Java EE: JSF + EJB + JPA

Zaawansowane aplikacje WWW - laboratorium

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

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

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

Projektowanie aplikacji internetowych laboratorium

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

Zaawansowane aplikacje internetowe - laboratorium

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

Zaawansowane aplikacje internetowe - laboratorium

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

Autor Zofia Kruczkiewicz Wzorce oprogramowania - laboratorium5_6

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Programowanie w Javie

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Katalog książek cz. 2

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

Enterprise JavaBeans (EJB)

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

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

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Programowanie obiektowe zastosowanie języka Java SE

Zaawansowane aplikacje internetowe laboratorium

Programowanie Obiektowe GUI

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

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

Zaawansowane aplikacje internetowe laboratorium

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

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

Problemy techniczne SQL Server

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.

Aplikacje WWW - laboratorium

Kostki OLAP i język MDX

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Zaawansowane aplikacje internetowe

Problemy techniczne SQL Server

Podstawowe informacje o technologii Java Persistence API - przykład

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

Aplikacje internetowe i rozproszone - laboratorium

Protokół JDBC współpraca z relacyjnymi bazami danych lab3

Wprowadzenie do Doctrine ORM

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

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

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Aplikacje WWW - laboratorium

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

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Web Services (SOAP) Ćwiczenie 1

Aplikacje internetowe i rozproszone - laboratorium

Zastosowanie komponentów EJB typu Session

Db4o obiektowa baza danych wersja.net

Aplikacje WWW - laboratorium

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

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

Java Platform Micro Edition

akademia androida Składowanie danych część VI

Ćwiczenia 9 - Swing - część 1

Java Database Connectivity

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

JDK 7u25 NetBeans Zajęcia 1 strona - 1

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Aplikacje RMI Lab4

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów.

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

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

MentorGraphics ModelSim

Programowanie w języku Java. Bazy danych SQLite w Javie

Oracle Application Express

Instrukcja laboratoryjna

Uruchamianie bazy PostgreSQL

Platformy Technologiczne

XML-owe bazy danych ćwiczenia 1

Laboratorium 050. Crystal Reports. Ćwiczenie 1. Otwarte pozycje

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Git, Bitbucket, IntelliJ IDEA

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Załącznik 1 instrukcje instalacji

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

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

Transkrypt:

Zaawansowane aplikacje internetowe Laboratorium Java Persistence. Adaptacja rozwiązania do ś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 1 Celem ćwiczenia jest przygotowanie prostej aplikacji Java SE realizującej odczyt i zapis danych z/do bazy danych poprzez Java Persistence API. Kroki ćwiczenia: 1) Utworzenie nowego projektu a) Uruchom narzędzie NetBeans IDE; b) Z menu głównego wybierz File- New Project. Wybierz kategorię Java a następnie typ projektu Java Application. Kliknij przycisk Next>. c) Podaj nazwę projektu BugsJP. W polu Project Location wpisz katalog, w którym masz prawo zapisu. Pola wyboru Set as Main Project i Create Main Class powinny być zaznaczone

Kliknij przycisk Finisz. Efektem działania kreatora powinien być projekt zawierający klasę BugsJP z metodą main() 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, a następnie wybierz kategorię Persistence a w niej Persistence Unit.

Klinij Next>. b) W polu Persistence Library wybierz TopLink Essentials (JPA 1.0), a w polu Database Connection wybierz z listy jdbc:derby://localhost:1527/sample[app on APP] Zwróć uwagę na wybór biblioteki do obsługi trwałości (Persistence Library): TopLink i łańcuch połączenia JDBC (Database Connection), wskazujący bazę danych wbudowaną w środowisko NetBeans (Derby). 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. c) Obejrzyj zawartość wygenerowanego przez kreator pliku persistence.xml w trybie XML. Zwróć uwagę na elementy i zawierające wartości odpowiadające opcjom wybranym w oknie kreatora. Sprawdź czy zarówno właściwość toplink.jdbc.user i toplink.jdbc.password mają wartość app i jeśli nie to popraw zawartość pliku. 3) Utworzenie klasy encji Bug. a) Kliknij prawym przyciskiem myszy na ikonie projektu w drzewie projektów i z menu kontekstowego wybierz New Other... Persistence Entity Class. Jako nazwę klasy podaj Bug, a jako nazwę pakietu encje. Pozostaw Long jako typ klucza głównego (Primary Key Type). Kliknij przycisk Finish. Ponownie obejrzyj zawartość pliku persistence.xml w trybie XML. Zwróć uwagę na element < class > dodany przez kreator tworzenia klasy encji. Atrybut ten oznacza, że utworzona klasa encji została wskazana jako zarządzana klasa trwała dla jednostki trwałości BugsJPPU b) Przejdź do edycji utworzonego pliku Bug.java. Pod adnotacją @Entity dodaj wiersz z adnotacją @Table(name="BUGS") aby obiekty klasy były składowane w tabeli o nazwie BUGS (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.

c) Dodaj w klasie Bug (poniżej pola id) dwa prywatne pola num typu String i description typu String @Entity @Table(name = "BUGS") public class Bug implements Serializable {... private static final long serialversionuid = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String num; private String description; d) W oknie edycji klasy Bug prawym klawiszem myszy wywołaj menu kontekstowe i wybierz opcję Refactor Encapsulate fields w celu utworzenia w klasie metod set/get dla pól num i description. Upewnij się, że pola wyboru dla metod set/get są zaznaczone (tylko dla tych dwóch pól). Kliknij przycisk Refactor. Obejrzyj w kodzie klasy wygenerowane metody. e) Zdefiniuj w klasie encji Bug nazwane zapytanie do wyszukiwania błędów zawierających w opisie podane słowo kluczowe poprzez umieszczenie bezpośrednio po wierszu z adnotacją @Table wiersza z poniższą adnotacją @NamedQuery: @NamedQuery(name = "findbykeyword", query = "SELECT b FROM Bug b WHERE b.description LIKE :keyword")

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ę import javax.persistence.namedquery; 4) Dodanie w klasie Main kodu zapisującego obiekty Bug do bazy danych i odczytującego obiekty Bug z bazy danych. a) Przejdź do edycji pliku BugsJP.java. Dodaj na początku definicji klasy (zaraz za linią public class BugsJP { ) następujący kod: static EntityManagerFactory emf = Persistence.createEntityManagerFactory("BugsJPPU"); Jeśli wprowadzony kod zostanie podkreślony jako błąd, będąc kursorem w wierszu z kodem naciśnij kombinację klawiszy Alt-Enter i wybierz zaproponowane biblioteki: import javax.persistence.entitymanagerfactory; import javax.persistence.persistence; b) Dodaj do kodu klasy Main dyrektywy import importujące klasy z pakietu encje i klasę biblioteczną java.util.list: import encje.*; import java.util.list; c) Dopisz (pod metodą main()) poniższą metodę addbug(), tworzącą obiekt Bug na podstawie podanego numeru i opisu, a następnie zapisującą go do bazy danych. Kod metody: public static void addbug(string pnum, String pdesc) { EntityManager em = emf.createentitymanager(); em.gettransaction().begin(); try { Bug b = new Bug(); b.setnum(pnum); b.setdescription(pdesc); em.persist(b); em.gettransaction().commit(); catch (Exception e) { e.printstacktrace(); em.gettransaction().rollback(); finally { em.close(); Jeśli wprowadzony kod zostanie podkreślony jako błąd, będąc kursorem w wierszu z kodem naciśnij kombinację klawiszy Alt-Enter i wybierz zaproponowane biblioteki d) ) Dodaj w klasie BugsJP metodę findbugs(), wyszukującą w bazie danych błędy, których opisy zawierają podane słowo kluczowe, poprzez nazwane zapytanie zdefiniowane w klasie

encji. E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 public static List<Bug> findbugs(string pkeyword) { EntityManager em = emf.createentitymanager(); List<Bug> wyn = null; try { wyn = em.createnamedquery("findbykeyword").setparameter("keyword", pkeyword).getresultlist(); catch (Exception e) { e.printstacktrace(); finally { em.close(); return wyn; e) Dodaj w metodzie main() klasy BugsJP kod zapisujący do bazy danych kilka obiektów Bug metodą addbug(), a następnie wyszukujący obiekty Bug metodą findbugs() i wyświetlający wyniki wyszukiwania na konsoli, np.: public static void main(string[] args) { addbug("b001", "Database server process does not start"); addbug("b002", "Database open() does not work"); addbug("b003", "Execution slow when on battery"); for (Bug b : findbugs("%base%")) { System.out.println("Num:" + b.getnum() + " Desc: " + b.getdescription()); f) Utwórz nową bibliotekę wybierając Tools Libraries a następnie klikając New Library po lewej na dole. Jako nazwę biblioteki wpisz Java_DB_Driver i naciśnij OK.

Klikając Add JAR/Folder dodaj 2 pliki.jar (derby.jar i derbyclient.jar) dołączone do materiałów: Kliknij OK. g) Dodaj do projektu bibliotekę wymaganą do współpracy z wbudowaną w NetBeans bazą danych. W tym celu wywołaj dla węzła Libraries w drzewie projektu opcję Add Library, a następnie z listy dostępnych bibliotek wybierz Java_DB_Driver i kliknij przycisk Add Library

h) Zapisz wszystkie zmiany (File Save All lub ikona w pasku narzędzi). i) Uruchom wbudowany serwer bazy danych: i) wybierz zakładkę Services w oknie z projektem; ii) rozwiń nagłówek Databases; iii) kliknij prawym klawiszem myszy na Java DB; iv) wybierz Start Server; j) Uruchom aplikację wybierając opcję Run z menu kontekstowego dla projektu. Wyświetlone na konsoli dane odczytane z bazy danych mogą być poprzedzone komunikatami informacyjnymi i ostrzeżeniami zgłaszanymi przez Toplink. Uwaga: liczba komunikatów może być większa, niż można by oczekiwać. Wynika to z faktu, że tabela z komunikatami znajduje się we wbudowanej bazie danych i zawiera dane wprowadzone przez poprzedników rozwiązujących to ćwiczenie. k) Uruchom aplikację kilkakrotnie i obserwuj wzrastającą liczbę komunikatów o błędach. l) Połącz się z bazą danych: i) wybierz zakładkę Services w oknie z projektem; ii) rozwiń nagłówek Databases; iii) kliknij prawym klawiszem myszy na jdbc:derby://localhost:1527/sample[app on APP]; iv) wybierz Connect...; m) rozwiń drzewo APP Tables BUGS; kliknij prawym klawiszem myszy na tabelę BUGS i wybierz View Data. Obejrzyj wszystkie komunikaty.

Dlaczego w konsoli programu wyświetlają się tylko niektóre? Jak wyświetlić pozostałe? n) Problem: w klasie BugsJP.java środowisko podkreśla na żółto frazę printstacktrace (przestarzałe). Jak uaktualnić kod?