Tworzenie warstwy integracji i uzupełnienie wartwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP

Wielkość: px
Rozpocząć pokaz od strony:

Download "Tworzenie warstwy integracji i uzupełnienie wartwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP"

Transkrypt

1 Tworzenie warstwy integracji i uzupełnienie wartwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP Autor Zofia Kruczkiewicz Programowanie i wdrażanie systemów informatycznych

2 Architektura aplikacji pięciowarstwowej Baza danych katalog Warstwa integrująca (EntityManager, ) Technologia TopLink Wzorce: Domain Store Transfer Object fasady (XXXController) fabryki obiektów Obiektowy model danych Wzorce: fasady TAplikacja fabryki obiektów strategii ApplicationBean1 Wzorzec fasady usług SessionBean1 Wzorzec fasady sesji SessionBean1 Wzorzec fasady sesji SessionBean1 Wzorzec fasady sesji Page1 (JSF) Page1 (JSF) Page1 (JSF) Klient1 Klient2 Klient3

3 1. Tworzenie pustej bazy danych w systemie baz danych Derby

4 Tworzenie bazy danych w systemie baz danych Derby Należy wybrać katalog na pustą bazę danych w systemie bazy danych Derby domyślnym katalogiem jest katalog użytkowników systemu Windows \.netbeans-derby - slajd(1) Należy wybrać z zakładki Services środowiska NetBeans opcję Databases. Następnie kliknąć prawym klawiszem myszy na Java DB i wybrać opcję Create Database slajd (2) W formularzu tworzenia bazy danych wg wzoru podanego na slajdzie (3) wprowadzić dane dotyczące bazy danych: Database Name, User, Password oraz Database Location (domyślne lub wybrane przez użytkownika) w wybranym katalogu pojawi się katalog o nazwie bazy danych z pustą bazą danych (slajd (4)) W zakładce Service należy otworzyć opcję Databases (slajd (5)) i wybierając prawym klawiszem myszy pozycję z listy połączeń do baz danych typu jdbc:derby://localhost:1527/nazwa_bazy_danych:[użytkownik on schematbazydanych], należy nacisnąć Connect. Po chwili nastąpi połączenie z bazą danych pustą symboliczny kwadrat z lewej strony łańcucha połączenia ulegnie scaleniu. Przy połączeniu domyślnie zapamiętane jest hasło do bazy danych. Można to zmienić w okienku Properties (wybór po kliknięciu prawym klawiszem myszy na pozycję połączenia) Należy kliknąć na symbol [+] z lewej strony łańcucha połączenia pojawi się zawartość katalogu z trzema pustymi podkatalogami: Tables, Views, Procedures (slajd (6))

5 1.1.Zakładanie nowej bazy danych w domyślnym katalogu dla baz danych typu Derby (1)

6 Zakładanie pustej bazy danych dla systemu baz danych Derby (2)

7 Zakładanie bazy danych katalog w systemie baz danych Derby (3)

8 Założono nową bazę danych katalog w domyślnym katalogu dla baz danych typu Derby (4)

9 1.2. Łączenie z pustą bazą danych (5)

10 Połączenie z pustą bazą danych (6)

11 2. Wykonanie kontrolerów wartwy integrującej warstwę biznesową z bazą danych (warstwa zasobów)

12 2.1. Dodanie modułu do utrwalania danych Należy wstawić moduł typu Persistence Unit - prawym klawiszem kliknąć na nazwę projektu w zakładce Projects, wybrać New\ Persistence Unit (slajd 7). Jeśli w liście nie ma pozycji Persistence Unit, należy wybrać pozycję Other, wybrać w formularzu New File w lewym oknie Categories pozycję Persistence i w prawym oknie FileTypes typ pliku Persistence Unit. Po naciśnięciu Next należy ustalić nazwę modułu. Nazwa modułu wynika z nazwy projektu z przyrostkiem PU. Można zmienić tę nazwę. Należy wybrać Persistence Library typu TopLink oraz połączyć się z pustą bazą danych założoną w pierwszym etapie prac wybierając właściwy łańcuch połączenia z listy Data Source (slajd 8). W formularzu tworzenia modułu należy wybrać Strategy Generation Table typu Create (slajd 9) jeśli tabel nie ma, zostaną utworzone, w przeciwnym wypadku nie będą tworzone nowe tabele (sytuacja sygnalizowana wyjątkami). W katalogu projektu Source Packages META-INF pojawia się plik persitence.xml i w katalogu Libraries pojawiają się biblioteki technologii TopLink w plikach jar zaznaczono je na slajdzie (10)

13 Wstawianie do projektu typu Java Application modułu typu Persistence Unit (7)

14 Wybór bazy danych, w której będą utrwalane obiekty pustej (8)

15 Tworzenie modułu utrwalania danych dla technologii TopLink (9)

16 Plik persistence.xml reprezentujący moduł utrwalania danych typu TopLink Uzupełnianie zawartości projektu typu Java Application o klasy typu Controller dla każdej z utrwalanych klas modelu obiektowego (10)

17 2.2. Wprowadzanie warstwy integracji i przekształcanie klas modelu obiektowego na encje Na slajdach 11 do 17 podano wskazówki dotyczące zamiany klas TTytul_ksiazki, TTytul_ksiazki_na_kasecie, TEgzemplarz, TEgzemplarz_termin na klasy z W klasie TEgzemplarz wprowadzono wirtualne metody: public Date gettermin() i public void settermin(date termin). Podczas tworzenia kodu należy uzupełniać import pakietów za pomocą opcji Fix Imports (prawym klawiszem myszy należy klikać na ciało klasy i wybrać z wyskakującego menu Fix Imports i wybierać klasy z pakietu javax.persistence). Zgodnie ze slajdem 18, należy w zakładce Projects wybrać w projekcie zakładkę META-INF i otworzyć plik persistence.xml w trybie Design. W formularzu pliku XML należy za pomocą klawisza Add class wstawić z listy utworzone cztery klasy typu Entity. Należy skompilować uzupełniany projekt tutaj Wypozyczalnia1app

18 (11) Encja TTytul_ksiazki - zmiana typu klas danych na dodano adnotacje, nowe atrybuty (Id, Ksiazka) z metodami. Należy zestandaryzować nazwy metod dostępu do składowych

19 (12) Encja TTytul_ksiazki cd.

20 (13) Encja TTytul_ksiazki cd. należy przedefiniować metody equals oraz hashcode

21 (14) Encja TTytul_ksiazki_na_kasecie - zmiana typu klas danych na dzięki polimorfizmowi metod getaktor i setaktor obie klasy zostaną odwzorowane do jednej tabeli TTytul_ksiazki w bazie danych

22 (15) Encja TEgzemplarz - Zmiana typu klas danych na () dodano adnotacje, nowy atrybut (Id) z metodami. Należy zestandaryzować nazwy metod dostępu do składowych utrwalanych

23 (16) Encja Tegzemplarz cd należy przedefiniować metody equals oraz hashcode

24 (17) Encja Tegzemplarz_termin - zmiana typu klas danych na dzięki polimorfizmowi metod gettermin i settermin obie klasy zostaną odwzorowane do jednej tabeli o nazwie TEgzemplarz w bazie danych

25 (18) Wstawienie do modułu typu Persistence Unit wszystkich klas typu Entity

26 2.3. Dodanie kontrolerów do utrwalania encji Na slajdzie (19) pokazano docelową zawartość projektu typu Java Application należy teraz utworzyć klasy typu Controller dla każdej z utrwalanych klas. W przypadku dziedziczenia należy utworzyć te klasy dla klas bazowych. Klasy typu Controller są fasadami warstwy integracji dla każdej z utrwalanych klas. W celu utworzenia każdego z plików TTytul_ksiazkiController.java oraz TEgzemplarzController.java, należy prawym klawiszem kliknąć na nazwę projektu w zakładce Projects, wybrać New\Java Class. Jeśli w liście nie ma pozycji Java Class, należy wybrać pozycję Other, wybrać w formularzu New File w lewym oknie Categories pozycję Java i w prawym oknie FileTypes typ pliku Java Class. Po naciśnięciu Next należy podać nazwę pliku w pozycji Class Name (TTytul_ksiazkiController) i wybrać z listy Package pakiet, w którym znajdują się klasy warstwy biznesowej (TTytul_ksiazki.java itd..) np. wypozyczalnia1app. Nacisnąć Finish. Całą procedurę powtórzyć do utworzenia pliku TEgzemplarzController.java. Po zakończeniu tych czynności powstają pliki zawierające klasy typu public z pustym ciałem. Na slajdach pokazano przebieg tworzenia kodu dla klasy typu Controller dla TTytul_ksiazki. Należy napisać taki kod zgodnie ze wskazówkami również dla klasy TEgzemplarz. Podczas pisania metody getentitymanager() łańcuch w liście parametrów metody createentitymanagerfactory powinien być nazwą modułu Persistence Unit. Oba pliki mogą znajdować się w katalogu klas modelu biznesowego lub nowym pakiecie tego projektu. W celu ułatwienia czynności po zakończeniu tworzenia ciała klasy TTytul_ksiazkiController można skopiować je i wkleić do ciała klasy TEgzemplarzController, zamienić ciąg znaków TTytul_ksiazki na TEgzemplarz za pomocą CTRL+H. Podczas tworzenia kodu należy uzupełniać import pakietów za pomocą opcji Fix Imports (prawym klawiszem myszy należy klikać na ciało klasy i wybrać z wyskakującego menu Fix Imports i wybierać klasy z pakietu javax.persistence. Dla typu List wybrać pakiet java.util.).

27 (19) Inżynieria odwrotna dla utworzonych przez programistę klas typu Controller dla każdej z utrwalanych klas modelu obiektowego (TTytul_ksiazki)

28 (20) Diagram klas uproszczony schemat warstwy integracji Fasady warstwy integracji

29 (21) Klasa typu TTytul_ksiazkiController dla każdej z klas utrwalanych obiektów public class TTytul_ksiazkiController { private EntityManagerFactory emf=null; private EntityManager getentitymanager() { if (emf == null) { emf = Persistence.createEntityManagerFactory("Wypozyczalnia1appPU"); } return emf.createentitymanager(); } public boolean findttytul_ksiazkis(ttytul_ksiazki TTytul_ksiazki) { EntityManager em = getentitymanager(); try { return em.find(ttytul_ksiazki.class, TTytul_ksiazki.getId())!=null; } finally { em.close(); } } public TTytul_ksiazki[] getttytul_ksiazkis() { return (TTytul_ksiazki[]) getttytul_ksiazki().toarray( new TTytul_ksiazki[0]); } public List<TTytul_ksiazki> getttytul_ksiazki() { EntityManager em = getentitymanager(); try { javax.persistence.query q = em.createquery("select c from TTytul_ksiazki as c"); return q.getresultlist(); } finally { em.close(); } }

30 public boolean addttytul_ksiazkis( TTytul_ksiazki TTytul_ksiazki) { EntityManager em = getentitymanager(); try { em.gettransaction().begin(); em.persist(ttytul_ksiazki); em.gettransaction().commit(); } finally { em.close(); return false; } } public boolean addttytul_ksiazki(arraylist<ttytul_ksiazki> tytuly) { EntityManager em = getentitymanager(); try { Iterator it = tytuly.iterator(); while (it.hasnext()) { TTytul_ksiazki newttytul_ksiazki = (TTytul_ksiazki) it.next(); if (newttytul_ksiazki.getid()==null) { em.gettransaction().begin(); em.persist(newttytul_ksiazki); em.gettransaction().commit();} } } finally { em.close(); return false; } }

31 public boolean removettytul_ksiazkis(ttytul_ksiazki TTytul_ksiazki) { EntityManager em = getentitymanager(); try { em.gettransaction().begin(); TTytul_ksiazki TTytul_ksiazkix = em.find(ttytul_ksiazki.class, Tytul_ksiazki.getId()); em.remove(ttytul_ksiazkix); em.gettransaction().commit(); } finally { em.close(); return false; } } public boolean updatettytul_ksiazkis(ttytul_ksiazki TTytul_ksiazki) { EntityManager em = getentitymanager(); try { em.gettransaction().begin(); TTytul_ksiazki TTytul_ksiazkix = em.find(ttytul_ksiazki.class, TTytul_ksiazki.getId()); TTytul_ksiazkix.setTytul(TTytul_ksiazki.getTytul()); TTytul_ksiazkix.setAutor(TTytul_ksiazki.getAutor()); TTytul_ksiazkix.setISBN(TTytul_ksiazki.getISBN()); TTytul_ksiazkix.setWydawnictwo(TTytul_ksiazki.getWydawnictwo()); em.gettransaction().commit(); } finally { em.close(); return false; } }

32 (22) Klasa typu TEgzemplarzController dla każdej z klas utrwalanych obiektów public class TEgzemplarzController { private EntityManagerFactory emf = null; private EntityManager getentitymanager() { if (emf == null) { emf = Persistence.createEntityManagerFactory("Wypozyczalnia1appPU"); } return emf.createentitymanager(); } public boolean findtegzemplarzs(tegzemplarz TEgzemplarz) { EntityManager em = getentitymanager(); try { return em.find(tegzemplarz.class, TEgzemplarz.getId())!=null; } finally { em.close(); } } public TEgzemplarz[] gettegzemplarzs() { return (TEgzemplarz[]) gettegzemplarze().toarray(new TEgzemplarz[0]); } public List<TEgzemplarz> gettegzemplarze() { EntityManager em = getentitymanager(); try { javax.persistence.query q = em.createquery("select c from TEgzemplarz as c"); return q.getresultlist(); } finally { em.close(); } }

33 public boolean addtegzemplarzs(tegzemplarz TEgzemplarz) { EntityManager em = getentitymanager(); try { em.gettransaction().begin(); em.persist(tegzemplarz); em.gettransaction().commit(); } finally { em.close(); return false; } } public boolean addtegzemplarze(arraylist<ttytul_ksiazki> tytuly) { EntityManager em = getentitymanager(); Iterator it = tytuly.iterator(); try { while (it.hasnext()) { TTytul_ksiazki newttytul_ksiazki = (TTytul_ksiazki) it.next(); if (newttytul_ksiazki.getid()==null) continue; terator it_ = newttytul_ksiazki.getmksiazka().iterator(); while (it_.hasnext()) { TEgzemplarz newtegzemplarz = (TEgzemplarz) it_.next(); if (newtegzemplarz.getid()==null) { em.gettransaction().begin(); em.persist(newtegzemplarz); em.gettransaction().commit(); } } } } finally { em.close(); return false; } }

34 public boolean removetegzemplarzs(tegzemplarz TEgzemplarz) { EntityManager em = getentitymanager(); try { em.gettransaction().begin(); TEgzemplarz TEgzemplarzx = em.find(tegzemplarz.class, TEgzemplarz.getId()); em.remove(tegzemplarzx); em.gettransaction().commit(); } finally { em.close(); return false; } } } public boolean updatetegzemplarzs(tegzemplarz TEgzemplarz) { EntityManager em = getentitymanager(); try { em.gettransaction().begin(); TEgzemplarz TEgzemplarzx = em.find(tegzemplarz.class, TEgzemplarz.getId()); TEgzemplarzx.setNumer(TEgzemplarz.getNumer()); em.gettransaction().commit(); } finally { em.close(); return false; } }

35 3. Wykonanie formularzy typy JSP zawierających wieloużywalne formularze typu JSPF dla uzupełnienie formularzy dla warstwy integrującej

36 Projekty formularza głównego Strona główna (Page1.jsp)

37

38 Projekty formularza Dodaj tytul do bazy (Baza_tytul.jsp)

39 Wstawianie atrybutów obiektowych do kodu Javy w celu zmiany właściwości komponentu metodami programistycznymi - należy to wykonać dla uproszczenia dla każdego komponentu użytego w projekcie.

40

41 Projekty formularza Przepisz tytuły do bazy (Baza_tytuly.jsp)

42

43 Projekty formularza Przepisz ksiazki do bazy (Baza_ksiazki.jsp)

44

45 4. Wykonanie oprogramowania systemu dla wielu klientów ze wspólną warstwą biznesową istniejącą podczas sesji i wspólną warstwą integrująca z bazą danych uzupełnienie dla warstwy integrującej

46 4.1. Oprogramowanie dotyczące formularza Dodaj tytul do bazy Definicje metod w klasie Baza_tytul dla strony typu JSP do zapisu tytułów z warstwy biznesowej metodą zapisz_tytul_do_bazy (obsługa zdarzenia bazatytul_action) Generowania widoku w fazie Response - przetwarzanie strony metoda prerender (wygaszanie linku do bieżącej strony w formularzu Menu typu JSPF, aktualizacja tablicy tytuly metodą updatetytuls w klasie ApplicationBean1, wyświetlanej w komponencie Table strony Tytulybaza typu JSPF, czyszczenie pól formularza FormTytul typu JSPF jego metodą odswiez_form)

47 Definicje metod w klasie ApplicationBean1: - odczytującą dane typu kolekcja obiektów TTytul_ksiazki i TTytul_ksiazki_na_kasecie z bazy danych (updatetytuls) - metoda zapisz_tytul_do_bazy zapisująca do bazy danych (addttytul_ksiazkis) i warstwy biznesowej (dodaj_tytul ) pojedynczych danych typu TTytul_ksiazki i TTytul_ksiazki_na_kasecie oraz odświeżająca zawartość komponentu typu DropDownList na stronie Tytulyaplikacja typu JSPF (przygotujtytuly)

48 Bindowanie tablicy tytuly z komponentem typu Table w celu wyświetlenia wszystkich tytułów przechowywanych w pamięci aplikacji

49 4.2. Oprogramowanie dotyczące formularza Baza_tytuly.jsp Definicje metod w klasie Baza_tytuly dla strony typu JSP do zapisu tytułów z warstwy biznesowej metodą zapisz_tytuly_do_bazy (obsługa zdarzenia dodajtytulbaza_action) Generowanie widoku w fazie Response - przetwarzanie strony metodą prerender (wygaszanie linku do bieżącej strony w fdormularzu Menu typu JSPF i aktualizacja tablicy tytuly metodą updatetytuls w klasie ApplicationBean1 wyświetlanej w komponencie Table strony Tytulybaza typu JSPF)

50 Definicje metody zapisz_tytuly_do_bazy w klasie ApplicationBean1 związanej z zapisem danych typu kolekcja obiektów TTytul_ksiazki i TTytul_ksiazki_na_kasecie w bazie danych

51 4.3. Oprogramowanie dotyczące formularza Baza_ksiazki.jsp Definicje metod w klasie Baza_ksiazki dla strony typu JSP do zapisu książek z warstwy biznesowej metodą zapisz_ksiazki_do_bazy (obsługa zdarzenia dodajksiazkabaza_action) Generowanie widoku w fazie Response - przetwarzanie strony metodą prerender (wygaszanie linku do bieżącej strony w formularzu Menu typu JSPF i aktualizacja tablicy ksiazki metodą updateksiazkis w klasie ApplicationBean1 wyświetlanej w komponencie Table strony Ksiazkibaza typu JSPF)

52 Definicja metod w klasie ApplicationBean1 związanej z zapisem (zapisz_ksiazki_do_bazy) Definicja metod w klasie ApplicationBean1 związanej z odczytem (updateksiazkis) danych typu kolekcja obiektów TEgzemplarz i TEgzemplarz_termin w bazie danych

53 Bindowanie tablicy ksiazki z komponentem typu Table w celu wyświetlenia wszystkich książek przechowywanych w pamięci aplikacji

54 4.4.

55 4.5. Widok bazy danych w zakładce Services wykonanie operacji ViewData dostępnej z wyskakującego menu po naciśnięciu tabeli TEgzemplarz prawym klawiszem myszy

56 Dodatek: Zalecenia dla klas typu Entity, które mogą być utrwalane w bazach danych (1) opis klas Entity na podstawie: Musi posiadać adnotację javax.persistence.entity (@Entity) Klasa musi mieć konstruktor typu public lub protected, bezparametrowy Klasa nie może być typu final Klasa musi być serializowana, stąd musi wystąpić w deklaracji klasy implements Serializable Klasy typu Entity mogą dziedziczyć po klasach zarówno typu Entity jak i zwykłej oraz zwykła klasa może dziedziczyć od klasy typu Entity. Dostęp do danych obiektu typu Entity może odbywać się tylko poprzez metody Musi mieć metody hashcode() i equals(object other) Podstawowe adnotacje dla kluczy głównych oznacza adnotację dla klucza głównego. (strategy=generationtype.<...>) oznacza strategię tworzenia wartości kluczy głównych, zależną od systemu baz danych (javax.persistence.generatedvalue, javax.persistence.generationtype). = GenerationType.IDENTITY) oznacza odpowiedzialność za generowanie wartości kluczy głównych przez bazę danych. = GenerationType.AUTO) pozwala na przejęcie odpowiedzialności za generowanie kluczy przez system mapujący np.toplink, który posługuje się pomocniczą tabelą przechowującą wartości potrzebne do generowania kluczy)

57 Dodatek: Zalecenia dla klas typu Entity, które mogą być utrwalane w bazach danych (2) Typy danych pól: typy nieobiektowe, java.lang.string, java.math.biginteger, java.math.bigdecimal,java.util.date, java.util.calendar, java.sql.date, java.sql.time, java.sql.timestamp, user-defined serializable types, byte[], Byte[], char[], Character[], typu wyliczeniowe, kolekcje, klasy wewnętrzne Pomijanie pól przy utrwalaniu realizuje się za pomocą javax.persistence.transient Można stosować następujące interfejsy kolekcji: java.util.collection, java.util.set, java.util.list, java.util.map oraz korzystać z parametryzacji kolekcji np. set<phonenumber> getphonenumbers() {} void setphonenumbers(set<phonenumber>) {} Klucze główne: typy nieobiektowe - javax.persistence.id ), typy złożone: java.lang.string, java.util.date, java.sql.date adnotacje javax.persistence.embeddedid and javax.persistence.idclass (@EmbeddedId Muszą być publiczne Klasa klucza głównego musi mieć domyślny konstruktor, Klasa głównego klucza musi mieć metody hashcode() and equals(object other) Klasa głównego klucza musi być serializowana

58 Dodatek: Zalecenia dla klas typu Entity, które mogą być utrwalane w bazach danych (3) Zaznaczone metody w przykładowej klasie muszą wystąpić w klasach kluczy głównych oraz w klasach typu Entity public final class LineItemKey implements Serializable { public Integer orderid; public int itemid; public LineItemKey() {} public LineItemKey(Integer orderid, int itemid) { this.orderid = orderid; this.itemid = itemid; } public boolean equals(object otherob) { if (this == otherob) { return true; } if (!(otherob instanceof LineItemKey)) { return false; } LineItemKey other = (LineItemKey) otherob; return ( (orderid == null? other.orderid==null : public int hashcode() orderid.equals (other.orderid) ) && (itemid == other.itemid) ); } { return ( (orderid==null? 0 : orderid.hashcode()) ^ ((int) itemid) ); } public String tostring() { return "" + orderid + "-" + itemid; } }

59 Dodatek: Zalecenia dla klas typu Entity, które mogą być utrwalane w bazach danych (4) Typy relacji (liczność) One-to-one: adnotacja javax.persistence.onetoone -@OneToOne One-to-many: adnotacja javax.persistence.onetomany Many-to-one: adnotacja javax.persistence.manytoone Many-to-many: adnotacja javax.persistence.manytomany Kierunek relacji Jednokierunkowa posiada implementację po jednej stronie relacji (zapytanie może być realizowane od właściela, który zna inny obiekt ) Dwukierunkowa musi spełniać wymagania: Przeciwna strona relacji musi posiadać element typu mappedby w zależności od definicji drugiej strony relacji. Element mappedby oznacza pole właściciela relacji (drugiej strony relacji). Druga strona relacji many-to-many lub many-to-one nie może posiadać elementu mappedby. Dla relacji one-to-one, strona właściciela odpowiada stronie z kluczem obcym. Dla relacji many-to-many każda strona relacji jest właścicielem drugiej strony. Zapytanie mogą być realizowane w obu kierunkach Kaskadowe usuwanie wszystkich obiektów powiązanych przez element mappedby mappedby="customer ") public Set<Order> getorders() { return orders; }

Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Przykład

Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Przykład Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Przykład Autor Zofia Kruczkiewicz Wzorce oprogramowania 5 1. Tworzenie bazy danych

Bardziej szczegółowo

Tworzenie warstwy prezentacji drugi etap Przykład z laboratorium5_6. Autor Zofia Kruczkiewicz Wzorce oprogramowania laboratorium7_8

Tworzenie warstwy prezentacji drugi etap Przykład z laboratorium5_6. Autor Zofia Kruczkiewicz Wzorce oprogramowania laboratorium7_8 Tworzenie warstwy prezentacji drugi etap Przykład z laboratorium5_6 Autor Zofia Kruczkiewicz Wzorce oprogramowania laboratorium7_8 1. Wykonanie formularzy typy JSP zawierających wieloużywalne formularze

Bardziej szczegółowo

Tworzenie warstwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP

Tworzenie warstwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP Tworzenie warstwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP Autor Zofia Kruczkiewicz Programowanie i wdrażanie systemów informatycznych 1. Wykonanie formularzy typy JSP

Bardziej szczegółowo

Autor Zofia Kruczkiewicz Wzorce oprogramowania - laboratorium5_6

Autor Zofia Kruczkiewicz Wzorce oprogramowania - laboratorium5_6 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych (podrozdziały 1, 2, 3) Tworzenie warstwy prezentacji pierwszy etap (podrozdziały

Bardziej szczegółowo

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

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM Cel laboratorium 5 Należy wykonać dwie aplikacje zawierające warstwę integracji

Bardziej szczegółowo

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

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,

Bardziej szczegółowo

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

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1 Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1 Przykład 1- Wykonanie prostej aplikacji internetowej w technologii JavaEE w środowisku Netbeans 5.5 z wykorzystaniem

Bardziej szczegółowo

Programowanie komponentowe 5

Programowanie komponentowe 5 Budowa warstwy klienta w architekturze typu klient-serwer zbudowanych z komponentów typu EE - klient desktopowy i internetowy. Zastosowanie komponentów opartych na technologii EJB 3.2. na podstawie https://docs.oracle.com/javaee/7/jeett.pdf

Bardziej szczegółowo

Tworzenie systemów informatycznych. Inżynieria oprogramowania Zofia Kruczkiewicz

Tworzenie systemów informatycznych. Inżynieria oprogramowania Zofia Kruczkiewicz Tworzenie systemów informatycznych Inżynieria oprogramowania Zofia Kruczkiewicz 1 Zagadnienia 1. Wielowarstwowa architektura systemu informatycznego 2. Refaktoryzacja architektury wielowarstwowej systemu

Bardziej szczegółowo

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

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1) Instrukcja tworzenia aplikacji EE na podstawie aplikacji z dostępem do bazy danych, prezentowanej na zajęciach lab.5 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie

Bardziej szczegółowo

Zasady generowania kluczy głównych Język Java Persistence Podstawowa architektura wielowarstwowych aplikacji w oparciu o wzorce oprogramowania

Zasady generowania kluczy głównych Język Java Persistence Podstawowa architektura wielowarstwowych aplikacji w oparciu o wzorce oprogramowania Zasady generowania kluczy głównych Język Java Persistence Podstawowa architektura wielowarstwowych aplikacji w oparciu o wzorce oprogramowania Autor Zofia Kruczkiewicz Wzorce oprogramowania 6 1. Różne

Bardziej szczegółowo

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

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence. 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

Bardziej szczegółowo

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres

Bardziej szczegółowo

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.

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. 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. Projektowanie i wdrażanie systemów informatycznych Przekształcenie

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Java Persistence. Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne NetBeans IDE 5.5 wraz z serwerem Sun Java System Application

Bardziej szczegółowo

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA Bazy danych tworzenie aplikacji bazodanowych ORM / JPA ORM (Object Relationa Mapping)/ORB (Object Relational Broker) to nazwa mechanizmu tłumaczenia obiektowej postaci danych wykorzystywanej w aplikacjach

Bardziej szczegółowo

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

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz Budowa prostej aplikacji wielowarstwowej Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz Konfigurowanie edytora programu za pomocą Tools/Options/Editor Konfigurowanie edytora programu za pomocą

Bardziej szczegółowo

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

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Budowa aplikacji wielowarstwowych zastosowanie szablonów Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Przykład 1 Zastosowanie szablonów Tworzenie kopii projektu typu Web Application o nazwie

Bardziej szczegółowo

Zastosowanie komponentów EJB typu Session

Zastosowanie komponentów EJB typu Session Zastosowanie komponentów EJB typu Session na podstawie https://docs.oracle.com/javaee/7/jeett.pdf Programowanie komponentowe Lab1 1 1. Refaktoryzacja kodu programu Sklep_6 z lab5, TINT 1.1. Należy wykonać

Bardziej szczegółowo

Tworzenie systemów informatycznych. Inżynieria oprogramowania Zofia Kruczkiewicz

Tworzenie systemów informatycznych. Inżynieria oprogramowania Zofia Kruczkiewicz Tworzenie systemów informatycznych Inżynieria oprogramowania Zofia Kruczkiewicz 1 Zagadnienia 1. Wielowarstwowa architektura systemu informatycznego 2. Refaktoryzacja architektury wielowarstwowej systemu

Bardziej szczegółowo

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

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence. 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

Bardziej szczegółowo

Java Enterprise Edition spotkanie nr 6. przygotował Jacek Sroka. Java Persistence API

Java Enterprise Edition spotkanie nr 6. przygotował Jacek Sroka. Java Persistence API Java Enterprise Edition spotkanie nr 6 Java Persistence API Trwałość Serializacja dane reprezentowane binarnie lub w XMLu brak wyszukiwania brak transakcji O/R mapping zazwyczaj: klasa->tabela, obiekt->wiersz,

Bardziej szczegółowo

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP Laboratoria 5-7- część 1 Identyfikacja klas reprezentujących logikę biznesową projektowanego oprogramowania, definicja atrybutów i operacji klas oraz związków między klasami - na podstawie analizy scenariuszy

Bardziej szczegółowo

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

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application

Bardziej szczegółowo

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

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Protokół JDBC współpraca z relacyjnymi bazami danych lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Zadanie1 Połączenie z bazą danych travel systemu bazodanowego Derby (metoda void

Bardziej szczegółowo

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

Protokół JDBC współpraca z relacyjnymi bazami danych lab3 Protokół JDBC współpraca z relacyjnymi bazami danych lab3 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych JPA, lab3 Zofia Kruczkiewicz 1 Zadanie1 Połączenie z bazą danych Sample systemu

Bardziej szczegółowo

Języki i metody programowania Java Lab2 podejście obiektowe

Języki i metody programowania Java Lab2 podejście obiektowe Języki i metody programowania Java Lab2 podejście obiektowe https://docs.oracle.com/javase/tutorial/ http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/pojava/javazk4_2.pdf Zofia Kruczkiewicz 1 Zadanie

Bardziej szczegółowo

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

Java Persistence API. Class powinny być zaznaczone. Kliknij przycisk Finish. Java Persistence API Do wykonania ćwiczeń potrzebne jest środowisko programistyczne NetBeans IDE wraz z serwerem Glassfish V3 (do pobrania z http://www.netbeans.org/downloads/index.html jako Java EE 5

Bardziej szczegółowo

Laboratorium 2_3_4 Wzorce oprogramowania zastosowane w modelu obiektowym (wg Alan Shalloway, James R.Trott)

Laboratorium 2_3_4 Wzorce oprogramowania zastosowane w modelu obiektowym (wg Alan Shalloway, James R.Trott) Laboratorium Wzorce oprogramowania zastosowane w modelu obiektowym (wg Alan Shalloway, James R.Trott) Implementacja warstwy biznesowej stosującej wzorce obiektowe oprogramowania laboratorium2_ 3_4 1 Identyfikacja

Bardziej szczegółowo

Wielowarstwowe aplikacje internetowe - laboratorium

Wielowarstwowe aplikacje internetowe - laboratorium Wielowarstwowe aplikacje internetowe - laboratorium Java Persistence API (JPA) Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne NetBeans IDE 6.1 wraz z serwerem GlassFish (do

Bardziej szczegółowo

Podstawowe informacje o technologii Java Persistence API

Podstawowe informacje o technologii Java Persistence API Podstawowe informacje o technologii Java Persistence API na podstawie https://docs.oracle.com/javaee/7/jeett.pdf Programowanie komponentowe 4 Programowanie komponentowe 4, Zofia Kruczkiewicz 1 1. Klasy

Bardziej szczegółowo

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

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne

Bardziej szczegółowo

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Projekt INP Instrukcja 2. Autor Dr inż. Zofia Kruczkiewicz

Projekt INP Instrukcja 2. Autor Dr inż. Zofia Kruczkiewicz Projekt INP002017 Instrukcja 2 Autor Dr inż. Zofia Kruczkiewicz I. Czynności wykonane zgodnie z harmonogramem grupy w tygodniach 1-15 Tabela 2. Przebieg realizacji każdego z projektów (tabela 1) Opis realizacji

Bardziej szczegółowo

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

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Przykłady na podstawie zadań lab. z przedmiotu Technologie internetowe

Bardziej szczegółowo

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7 Instrukcja 7 Laboratoria 9, 10 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji

Bardziej szczegółowo

Podstawowe informacje o technologii Java Persistence API - przykład

Podstawowe informacje o technologii Java Persistence API - przykład Podstawowe informacje o technologii Java Persistence API - przykład na podstawie https://docs.oracle.com/javaee/7/jeett.pdf Programowanie komponentowe 3_2 1 1. Wykonanie kopii programu Sklep_6 2 1. Wykonanie

Bardziej szczegółowo

Tworzenie systemów informatycznych. Inżynieria oprogramowania Zofia Kruczkiewicz

Tworzenie systemów informatycznych. Inżynieria oprogramowania Zofia Kruczkiewicz Tworzenie systemów informatycznych Inżynieria oprogramowania Zofia Kruczkiewicz 1 Literatura 1. Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, 2004 2. Stephen H. Kan, Metryki i modele

Bardziej szczegółowo

Modelowanie i analiza. warstwy biznesowej aplikacji

Modelowanie i analiza. warstwy biznesowej aplikacji Modelowanie i analiza warstwy biznesowej aplikacji 1. Warstwa biznesowa aplikacji, refaktoryzacja warstwy biznesowej, refaktoryzacja systemu informatycznego 2. Przykład tworzenia warstwy biznesowej systemu

Bardziej szczegółowo

Java EE: JSF + EJB + JPA

Java EE: JSF + EJB + JPA Java EE: JSF + EJB + JPA Celem ćwiczenia jest utworzenie prostej aplikacji bazodanowej umożliwiającej przeglądanie i dodawanie zleceń serwisowych. Ćwiczenie pokazuje współpracę technologii JSF (podstawowej

Bardziej szczegółowo

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

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek

Bardziej szczegółowo

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

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) 1. Udostępnianie wszystkich prywatnych atrybutów do prezentacji, wprowadzenie standardu nazewnictwa plików nazwy plików

Bardziej szczegółowo

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Zofia Kruczkiewicz Zofia Kruczkiewicz Inżynieria oprogramowania INEK011 1 Składnia elementów na diagramach UML 1. W prezentacji składni diagramów

Bardziej szczegółowo

Budowa prostej aplikacji wielowarstwowej

Budowa prostej aplikacji wielowarstwowej Budowa prostej aplikacji wielowarstwowej Laboratorium 1 Technologie internetowe https://docs.oracle.com/javaee/7/javaserver-faces-2-2/vdldocs-facelets/toc.htm Zofia Kruczkiewicz 1 Wykaz pytań dotyczących

Bardziej szczegółowo

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

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >. Zaawansowane aplikacje internetowe laboratorium Hibernate. Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne NetBeans IDE 6.7.1 (do pobrania z http://www.netbeans.org/downloads/index.html).

Bardziej szczegółowo

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,

Bardziej szczegółowo

Wykład 6 Dziedziczenie cd., pliki

Wykład 6 Dziedziczenie cd., pliki Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie

Bardziej szczegółowo

Projekt INP Instrukcja 1. Autor Dr inż. Zofia Kruczkiewicz

Projekt INP Instrukcja 1. Autor Dr inż. Zofia Kruczkiewicz Projekt INP002017 Instrukcja 1 Autor Dr inż. Zofia Kruczkiewicz I. Czynności wykonane zgodnie z harmonogramem grupy w tygodniach 1-6 1. Czynności (str. 3-12) wg instrukcji do lab3: http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/inp002017/lab_inp002017_3.pdf

Bardziej szczegółowo

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6 Instrukcja 6 Laboratorium 8 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji

Bardziej szczegółowo

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

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring. Zaawansowane aplikacje internetowe - laboratorium Architektura Spring. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej architekturę Spring. Aplikacja składa się z jednego

Bardziej szczegółowo

Java Persistence API (JPA)

Java Persistence API (JPA) Java Persistence API (JPA) Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne NetBeans IDE 7.0 wraz z serwerem GlassFish v3 (do pobrania z http://www.netbeans.org/) oraz środowisko

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Ćwiczenia 9 - Swing - część 1

Ćwiczenia 9 - Swing - część 1 Ćwiczenia 9 - Swing - część 1 Utwórz nowy projekt wybierając: File->New Project->Java Application, przy czym odznacz opcję Create Main Class. Kliknij prawym przyciskiem myszy na podfolder Source Packages

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek podanych

Bardziej szczegółowo

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

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste

Bardziej szczegółowo

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

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1 Dr inż. Zofia Kruczkiewicz Etap 1 - Tworzenie apletu 1. Wybierz z menu File\ New Project. Na formularzu New Project wybierz w oknie Categories

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Instytut Mechaniki i Inżynierii Obliczeniowej   fb.com/groups/bazydanychmt/ Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz

Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz Zadanie 1. Wykonanie projektu Java SE w środowisku Netbeans- File/New Project W formularzu New Project

Bardziej szczegółowo

Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników

Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników https://docs.oracle.com/javase/tutorial/ http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/pojava/javazk4_2.pdf

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Języki i metody programowania Java INF302W Wykład 2 (część 1)

Języki i metody programowania Java INF302W Wykład 2 (część 1) Języki i metody programowania Java INF302W Wykład 2 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 2, część 1 1 Struktura wykładu 1. Identyfikacja

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 5

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 5 Instrukcja 5 Laboratorium 7 Identyfikacja klas reprezentujących logikę biznesową projektowanego oprogramowania, definicja atrybutów i operacji klas oraz związków między klasami - na podstawie analizy scenariuszy

Bardziej szczegółowo

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

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

Bardziej szczegółowo

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Języki i metody programowania Java. Wykład 2 (część 2)

Języki i metody programowania Java. Wykład 2 (część 2) Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń Budowa aplikacji wielowarstwowych. Obsługa zdarzeń Laboratorium 6 Technologie internetowe Zofia Kruczkiewicz TINT_Lab_6, Zofia Kruczkiewicz 1 Wykaz pytań dotyczących materiału wykorzystanego w lab6, które

Bardziej szczegółowo

Projektowanie aplikacji internetowych laboratorium

Projektowanie aplikacji internetowych laboratorium Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji

Bardziej szczegółowo

Instrukcja 3 Laboratorium z Podstaw Inżynierii Oprogramowania

Instrukcja 3 Laboratorium z Podstaw Inżynierii Oprogramowania Instrukcja 3 Laboratorium z Podstaw Inżynierii Oprogramowania Diagramy klas i sekwencji: Relacja 1 do 0..* między klasami modelu obiektowego Cele laboratorium 3 Dokończyć 1-y etap z lab2. 2-i etap projektu.

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium JavaServer Pages Standard Tag Library Celem ćwiczenia jest zapoznanie ze standardową biblioteką znaczników JSTL. W ramach ćwiczenia zostanie skonstruowany prosty sklep internetowy

Bardziej szczegółowo

Db4o obiektowa baza danych wersja.net

Db4o obiektowa baza danych wersja.net Wstęp Db4o obiektowa baza danych wersja.net Db4o (database for objects) to obiektowa baza danych na platformę Java i.net. Pełna wersja bazy db4o jest dostępna na dwóch licencjach: open source: pozwala

Bardziej szczegółowo

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

Java EE: JSF + EJB + JPA + CDI + BV Java EE: JSF + EJB + JPA + CDI + BV Ćwiczenie 1 Celem ćwiczenia jest utworzenie prostej aplikacji bazodanowej umożliwiającej przeglądanie i dodawanie zleceń serwisowych. Ćwiczenie pokazuje współpracę technologii

Bardziej szczegółowo

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

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Wykład 3 Inżynieria oprogramowania Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System

Bardziej szczegółowo

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

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz Zofia Kruczkiewicz Projektowanie oprogramowania

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Celem ćwiczenia jest przygotowanie prostej aplikacji wykorzystującej architekturę CORBA. Aplikacja składa się z usługodawcy (serwera)

Bardziej szczegółowo

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Zofia Kruczkiewicz Zofia Kruczkiewicz Inżynieria oprogramowania INEK011 1 Diagramy maszyn stanowych, wzorce projektowe 1. Modelowanie zachowania

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

Bardziej szczegółowo

Wdrożenie do projektu

Wdrożenie do projektu Wdrożenie do projektu Zaczynamy od stworzenia zwykłego projektu Java. Środowisko z jakiego korzystam to Netbeans IDE w wersji 8.1. Możesz wykorzystywać inne IDE, bylebyś stosował analogiczne kroki w swoim

Bardziej szczegółowo

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

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta

Bardziej szczegółowo

ORM w Javie. Adam Michalik 2007

ORM w Javie. Adam Michalik 2007 ORM w Javie Adam Michalik 2007 ORM ORM O/RM O/R mapping Object-Relational Mapping Mapowanie obiektowo relacyjne Odwzorowanie obiektowo-relacyjne Co to jest ORM? Odwzorowanie obiektowo-relacyjne pozwala

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Koncepcja, projekt i implementacja wielowarstwowego systemu informatycznego Inżynieria oprogramowania Zofia Kruczkiewicz

Koncepcja, projekt i implementacja wielowarstwowego systemu informatycznego Inżynieria oprogramowania Zofia Kruczkiewicz Koncepcja, projekt i implementacja wielowarstwowego systemu informatycznego Inżynieria oprogramowania Zofia Kruczkiewicz 1 Literatura 1. Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT,

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

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

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium. Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium. Prowadzący Dr inż. Zofia 1 La1 La2 Forma zajęć - laboratorium Wprowadzenie

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo