Odwzorowanie obiektoworelacyjne

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

Download "Odwzorowanie obiektoworelacyjne"

Transkrypt

1 Odwzorowanie obiektoworelacyjne Wykład opracowali: Marek Wojciechowski i Tomasz Koszlajda Plan wykładu Techniki odwzorowania O/R JDBC Hibernate Java Persistence 1

2 Odwzorowanie obiektowo-relacyjne Odwzorowanie obiektowej architektury systemu informatycznego w relacyjne struktury danych bazy danych Aplikacja obiektowa Wielokąt #typfigury string #liczbawierzch integer +Powierzchnia() : Float +Przesuń(Float, Float) +DodajWierzch(Punkt) Middleware select * from Wielokąty insert into wielokąty values (w.typfigury, ) Relacyjna baza danych Wielokąty idwielokąta number(9) PK typfigury varchar(15) LiczbaWierzch number(3) wbaziedanych boolean Logiczny model danych logika biznesowa Odwzorowanie O/R Fizyczny model danych Techniki O/RM Dodanie do schematów relacji atrybutów implementacyjnych Utrzymywanie meta-danych opisujących reguły odwzorowania R/M Odwzorowanie sieci dziedziczenia klas Odwzorowanie związków między klasami Odwzorowanie atrybutów klas Strojenie wydajności odwzorowania 2

3 Atrybuty implementacyjne Oprócz odwzorowania atrybutów informacyjnych w O/RM niezbędne jest używanie dodatkowych atrybutów implementacyjnych Wielokąt #typfigury string #liczbawierzchołków integer +Powierzchnia() : Float +Przesuń(Float, Float) +DodajWierzchołek(Punkt) jestwierzchołkiem [3..*] [1] #X : Float #Y : Float Punkt +Kąt() : Float +Odległość() : Float +Przesuń(Float, Float) tworzkrawędźz [2] [2] Wielokąty idwielokąta number(9) PK typfigury varchar(15) LiczbaWierzchołków number(3) wbaziedanych boolean Punkty idpunktu number(10) PK idwielokąta number(9) FK X number(5,2) Y number(5,2) wbaziedanych boolean Klucze podstawowe i obce Zapewnienie trwałości danych Znaczniki czasowe Utrzymywanie meta-danych Schemat bazy danych należy rozszerzyć o informacje dotyczące logiki odwzorowania O/R: Zmienne obiektów atrybuty y relacji Związki atrybuty, tabele Atrybuty wielowartościowe obiektów tabele Konwersja typów danych Źródło danych klasa zmienna typ tabela kolumna typ Pracownik Nazwisko string Pracownicy Nazwisko varchar Pracownik Szef Pracownik Pracownicy Id_szefa number Pracownik JęzykiObce set(string) Języki_obce Nazwa String 3

4 Odwzorowanie sieci dziedziczenia Pracownik +etat: String +płaca: float +firma: Sring Dostępnych jest kilka metod odwzorowania: Osoba +imię : String +nazwisko : String +wiek : integer +płeć : Płeć {non complete, overlapping} Student +Uczelnia: String +Kierunek: String +rokstudiów: integer Odwzorowanie hierarchii klas w pojedynczą tablicę Odwzorowanie konkretnych klas w osobne tabele Odwzorowanie każdej klasy w osobną tabelę Odwzorowanie klas w uniwersalną strukturę tabel Odwzorowanie hierarchii klas w pojedynczą tabelę Osoby Imię Nazwisko Płeć Etat Płaca Firma Uczelnia Kierunek RokStudiów jeststudentem jestpracownikiem Własności: W tabeli będzie przechowywanych dużo zwartości pustych Tbli Tablica może ż osiągać ć duży ż rozmiar Łatwość przetwarzania polimorficznego Duża wydajność dla przetwarzania heterogenicznego Mała wydajność dla przetwarzania homogenicznego Mała wydajność dla modyfikacji struktury pojedynczych y klas Trudne utrzymywanie przynależności do typów Dobre dla prostych i płaskich hierarchii klas 4

5 Odwzorowanie konkretnych klas w osobne tabele Własności: Jeżeli klasa Osoba jest klasą abstrakcyjną Zależność między Trudna implementacja ę yp podzbiorami overlapping - danych typu complete implementacji konieczność wspólnej dziedziny dla kluczy relacji Pracownicy Studenci Mała wydajność dla przetwarzania idpracownika idstudenta polimorficznego Imię Imię Duża wydajność dla Nazwisko Nazwisko przetwarzania Płeć Etat Płaca Firma Płeć Uczelnia Kierunek RokStudiów homogenicznego Modyfikacja klasy z podklasami wymaga modyfikacji schematów wielu tabel Dobre dla rozłącznych podzbiorów rozszerzeń klas Odwzorowanie każdej klasy w osobną tabelę Pracownicy idosoby FK Etat Płaca Firma Osoby idosoby Imięę Nazwisko Płeć Studenci idosoby FK Uczelnia Kierunek RokStudiów Własności: Proste odwzorowanie 1:1 Łatwość przetwarzania polimorficznego Łatwe utrzymywanie dla modyfikacji nadklas i dodawania podklas Rozmiar struktur proporcjonalny do liczby danych Duża liczba tablic Mała wydajność przetwarzania homogenicznego Dobre dla pokrywających się podzbiorów rozszerzeń klas i często zmieniających się klas 5

6 Odwzorowanie klas w uniwersalną strukturę tabel Własności: Łatwość utrzymania dla zmian schematu Trudne i mało wydajne przetwarzanie Dobre dla złożonych aplikacji przetwarzających niezbyt duże zbiory danych Odwzorowanie cech klas Osoby +imię i : String +nazwisko : String +płeć : Płeć +liczbaosób : Integer Możliwe strategie: Jednokolumnowa i jednowierszowa tabela dla każdej cechy Wielokolumnowe i jednowierszowe tabele dla każdej z klas Wielokolumnowa i jednowierszowa tabela wspólna dla wszystkich klas Wielowierszowa tabela o generycznym schemacie wspólna dla wszystkich klas 6

7 Strojenie wydajności Strojenie mapowania struktur obiektowych na relacyjne: wybór strategii odwzorowania hierarchii dziedziczenia, związków i cech klas Opóźnione czytanie: dla dużych obiektów żądanie dostępu do obiektu może być realizowane jako odczyt jedynie podzbioru danych składających się na obiekt. Pozostałe części obiektu będą doczytane w momencie wystąpienia żądania dostępu do nich Oferta OR/M Lista produktów O/RM ObjectRelationalBridge (OJB) - projekt open source wspierający API ODMG and JDO TopLink - O/RM dla języka Java na serwery WWW EnterpriseObjectFramework (EOF) - framework używany w WebObjects na Apple JdoGenie - wydajna implementacja JDO ClassDbi - O/RM dla języka Perl HiberNate - projekt open source dla Javy ActiveRecord framework dla języka SQLObject framework dla języka Python EZPDO framework dla PHP5 Picasso - framework na platformę.net Gentle.NET - framework dla.net pisany w C# Genome - O/RM dla platformy.net and systemów SQL Server/Oracle AtomsFramework - framework dla VB6 and.net 7

8 JDBC - Java Database Connectivity Dostęp z poziomu języka Java do relacyjnej bazy danych Umożliwia ręczne wyłuskiwanie wartości danych Dostęp do bazy danych wymaga: Załadowania sterownika systemu bazy danych, którego wynikiem będzie dostęp do systemowego obiektu: DriverManager Zainicjowania połączenia z bazą danych za pomocą metody getconnection ti Connection mp = DriverManager.getConnection ( <URL>, <login>, <hasło> ); Dostęp do danych Dostęp do danych jest wykonywany za pomocą klasy: ResultSet Statement zapyt = mp.createstatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet wynik = zapyt.executequery( "SELECT etat FROM Pracownicy"); // wynik nie będzie pokazywał ł zmian wprowadzanych // przez innych i będzie modyfikowalny 8

9 Operacje za pomocą kursora Dostęp do konkretnych krotek wyniku wymaga zastosowania kursora: int x = ; String e = "Prezes"; while (wynik.next( )) { int Pesel = wynik.getint(1); if (Pesel = x) { String etat = wynik.updatestring(2,e); } } Dostęp do danych polega na przenoszeniu wartości między systemem danych bazy danych a systemem danych języka programowania Technologie O/RM O/RM = Object-Relational Mapping = odwzorowanie obiektowo-relacyjne Obejmują: API do zarządzania trwałością obiektów mechanizm specyfikowania metadanych opisujących odwzorowanie klas na relacje w bazach danych język lub API do wykonywania zapytań Popularne implementacje O/RM: Hibernate Oracle Toplink JDO 9

10 Hibernate Najpopularniejsza implementacja odwzorowania obiektowo-relacyjnego dla języka Java Obsługa asocjacji, kompozycji, dziedziczenia, polimorfizmu, kolekcji Wysoka wydajność i skalowalność Wiele sposobów zadawania zapytań Wykorzystuje siłę technologii relacyjnych baz danych Professional Open Source (JBoss Inc.) Obecnie jedna z implementacji standardu Java Persistence Architektura Hibernate Aplikacja Trwałe obiekty Hibernate Plik konfiguracyjny Definicje odwzorowania O/R Baza danych 10

11 Konfiguracja Hibernate hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration ration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" " <hibernate-configuration> <session-factory> <property name="hibernate.connection.datasource"> jdbc/sample</property> <property name="dialect"> l org.hibernate.dialect.oracledialect</property> <mapping resource="myhib/dept.hbm.xml"/> </session-factory> </hibernate-configuration> Specyfikacja klas trwałych obiektów Klasy encyjne występujące w logicznym modelu danych aplikacji Definiowane w formie Plain Old Java Object (POJO) Najlepiej posiadające sztuczny identyfikator public class Dept { private Long id; private String dname; Dept.java public void setid(long id) { this.id = id; } public Long getid() { return id; } public void setdname(string dname) { this.dname = dname; } public String getdname() { return dname; } } 11

12 Odwzorowanie O/R w Hibernate Definiowane w pliku lub plikach XML typowo odrębny plik dla każdej klasy zwyczajowe rozszerzenie.hbm.xml. Zorientowane na opis odwzorowania z punktu widzenia klasy Java, a nie tabeli Tworzone ręcznie lub generowane za pomocą narzędzi Pliki odwzorowania wskazywane w pliku konfiguracyjnym hibernate.cfg.xml lub bezpośrednio w aplikacji Przykład odwzorowania O/R Dept.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping...> <hibernate-mapping package="myhib"> <class name="dept" table="dept"> <id name="id" type="long" column="deptno"> <generator class="sequence"> <param name="sequence">dept_seq</param> </generator> </id> <property name="dname" column="dname" type="string" not-null="true length=30/> </class> </hibernate-mapping> DEPT DEPTNO NUMBER PRIMARY KEY DNAME VARCHAR2(30) 12

13 Podstawowe interfejsy Hibernate API SessionFactory służy do tworzenia obiektów Session obiekt tworzony raz dla całej aplikacji Session jednostka pracy ( unit of work ) obsługuje trwałość obiektów Transaction transakcja w bazie danych najczęściej jedna w sesji Hibernate w akcji SessionFactory sf = 1 new Configuration().configure().buildSessionFactory(); Session s = sf.opensession(); Transaction tx = s.begintransaction(); 4 Dept d = new Dept(); // ulotny d.setdname("marketing"); 5 s.save(d); save(d); // trwały 6 7 tx.commit(); s.close(); 13

14 Stany obiektu w Hibernate Ulotny (ang. transient) (new(), delete(), ) utworzony operatorem new, ale niezwiązany z sesją Trwały (ang. persistent) (save(), persist(), ) posiada identyfikator i reprezentację w bazie danych związany z sesją jego stan jest automatycznie synchronizowany z bazą danych Odłączony (ang. detached) (update(), ) obiekt, który był trwały, ale jego sesja się zakończyła można go modyfikować, a następnie związać z nową sesją Praca z obiektami w Hibernate Uczynienie obiektu trwałym: metoda save() obiektu Session Odczyt obiektu o znanym identyfikatorze: metody load() i get() obiektu Session Usunięcie obiektu: metoda delete() obiektu Session Modyfikacja trwałego obiektu metody setxxx() obiektu Synchronizacja obiektów odłączonych metody update(), saveorupdate() i merge() obiektu Session 14

15 Praca z obiektami - Przykłady Utworzenie i zachowanie obiektu Dept d = new Dept(); d.setdname( setdname("marketing"); Long genid = (Long) session.save(d); Odczyt i modyfikacja obiektu Dept d = (Dept) session.load(dept.class, new Long(20)); d.setdname("sales AND MARKETING"); Usunięcie obiektu Dept d = (Dept) session.load(dept.class, new Long(20)); session.delete(d); Zapytania w Hibernate Zapytania w języku HQL (Hibernate Query Language) składnia podobna do SQL zorientowany obiektowo zapytania odwołują się do klas, a nie tabel List depts = (List) session.createquery( "from Dept as dept where dept.dname = 'SALES'").list(); Zapytania w natywnym SQL Zapytania poprzez obiekty Criteria Zapytania poprzez obiekty Query By Example 15

16 Asocjacje w Hibernate 1:1, N:1, 1:N, N:M Z tabelą pośrednią (1:1, N:1, 1:N, N:M) lub bez (1:1, N:1, 1:N) Jednokierunkowe lub dwukierunkowe Możliwość kaskadowej propagacji operacji na obiekty zależne: none, all, save-update, delete, all-delete-orphan Przykład asocjacji w Hibernate (1/2) Dept Emp Emp.java public class Emp { private Long id; private String ename; private Dept dept;... } Emp.hbm.xml <class name="emp" table="emp">... <many-to-one name="dept" column="deptno" not-null="true"/> </class> 16

17 Przykład asocjacji w Hibernate (2/2) Dept Emp Dept.java public class Dept { private Long id; private String dname; private Set emps;... } Dept.hbm.xml <class name="dept" table="dept">... <set name="emps" inverse="true" cascade="all"> <key column="deptno"/> <one-to-many class="emp"/> </set> </class> Java Persistence Standard dotyczący zapewniania trwałości obiektów w aplikacjach Java EE i Java SE opracowany razem z EJB 3 stanowi część Java EE 5 Geneza standardu Java Persistence niepowodzenie koncepcji encyjnych EJB sukces technologii O/RM Rola Java Persistence na tle technologii O/RM oparty o odwzorowanie obiektowo-relacyjne definiuje standardowe API 17

18 Elementy standardu Java Persistence Interfejs programistyczny Java Persistence API Język zapytań Java Persistence Query Language Metadane o odwzorowaniu obiektowo-relacyjnym Encje Encja (ang. entity) to lekki obiekt służący do reprezentacji trwałych danych Typowo reprezentuje tabelę z relacyjnej bazy danych Typowo reprezentuje tabelę z relacyjnej bazy danych Definiowana w formie klasy encji i ewentualnie klas pomocniczych Wymagania dla klas encji: POJO z bezargumentowy konstruktor (public lub protected) bezargumentowy konstruktor (public lub protected) implementacja Serializable, jeśli obiekty będą odłączane 18

19 Encja public class Blad implements Serializable 3 private Long id; private String kod; 4 private String opis; 5 public Blad() { } public Long getid() { return id; } 6 public void setid(long id) { this.id id = id; } public String getkod() { return kod; } public void setkod(string kod) { this.kod = kod; } public String getopis() { return opis; } public void setopis(string opis) { this.opis = opis; } } Związki między encjami Liczność 1:1 (@OneToOne) 1:N (@OneToMany) N:1 (@ManyToOne) N:M (@ManyToMany) Kierunkowość dwukierunkowe jednokierunkowe Kaskada operacji: PERSIST, MERGE, REMOVE, REFRESH, ALL 19

20 Związki między encjami - Przykład Wykonawca public class Wykonawca implements Serializable mappedby="wykonawca") private Collection<Album> albumy;... public class Album implements Serializable private Wykonawca wykonawca;... } Zarządca encji (Entity Manager) Zarządca encji zarządzany przez kontener (EJB, JSF) wstrzykiwany komponentu aplikacji EntityManager em; kontekst trwałości propagowany między komponentami w ramach transakcji JTA Zarządca encji zarządzany przez aplikację (serwlety,se) tworzony i niszczony przez aplikację każdy zarządca encji tworzy odrębny kontekst EntityManagerFactory emf; EntityManager em = emf.createentitymanager(); 20

21 Jednostka trwałości (Persistence Unit) Definiuje zbiór klas encji zarządzanych przez EntityManager w aplikacji Obejmuje klasy encji z jednej bazy danych Definiowana w pliku konfiguracyjnym persistence.xml Posiada nazwę unikalną w zasięgu widzialności W aplikacjach Java EE wykorzystuje źródło danych obsługujące transakcje JTA nieobsługujące transakcji JTA W aplikacjach Java SE zawiera parametry połączenia JDBC Plik persistence.xml - Przykład <?xml version="1.0" encoding="utf-8"?> <persistence version="1.0"...> persistence.xml <persistence-unit name="albumyjppu" transaction-type="jta"> <provider> oracle.toplink.essentials.ejb.cmp3.entitymanagerfactoryprovider </provider> <jta-data-source>jdbc/sample</jta-data-source> <properties> p <property name="toplink.ddl-generation" value="create-tables"/> </properties> </persistence-unit> </persistence> 21

22 Cykl życia encji Instancje encji są zarządzane przez instancję EntityManager Stany instancji encji: nowa (ang. new) zarządzana (ang. managed) odłączona (ang. detached) usunięta (ang. removed) Utrwalanie instancji encji Metoda persist() obiektu EntityManager em;... Blad b = new Blad(); b.setkod("b001"); b.setopis("niedozwolona operacja w module X"); em.persist(b); 22

23 Odczyt, odświeżanie i synchronizacja instancji encji z bazą danych Odczyt poprzez klucz główny: metoda find() Odświeżenie stanu z bazy danych: metoda refresh() Modyfikacje instancji: metody setxxx() encji Synchronizacja instancji odłączonej: metoda merge() Moment zapisu danych do bazy danych: automatycznie: gdy transakcja jest zatwierdzana jawnie: w wyniku wywołania metody flush() Strategia blokowania danych domyślnie blokowanie optymistyczne możliwość jawnego blokowania metodą lock() Usuwanie instancji encji Metoda remove() obiektu EntityManager em;... Blad b = em.find(blad.class, new Long(13)); em.remove(b); 23

24 Transakcje EntityManager zarządzany przez kontener (EJB) kontener zarządza transakcjami EntityManager zarządzany przez aplikację transakcja JTA UserTransaction utx; utx.begin();... utx.commit(); // utx.rollback(); transakcja na poziomie zasobu (Java SE, serwlety) EntityManager em; em.gettransaction().begin();... em.gettransaction().commit(); // em.gettransaction().rollback(); Zapytania do bazy danych Rodzaje zapytań (metody obiektu EntityManager) dynamiczne w JPQL - createquery() dynamiczne natywne - createnativequery() nazwane (JPQL lub natywne) - createnamedquery() Parametryzacja zapytań nazwane (np. :kodbledu) pozycyjne (np.?1) Wykonanie zapytania (metody obiektu Query) getresultlist(), getsingleresult() executeupdate() 24

25 Zapytanie dynamiczne - Przykład EntityManager em;... List<Blad> wyn = null; Query q = em.createquery( "SELECT b FROM Blad b WHERE b.opis LIKE '%problem%'"); wyn = q.getresultlist(); Zapytanie nazwane - = "findbykeyword", query = "SELECT b FROM Blad b WHERE b.opis LIKE :keyword") public class Blad implements Serializable {... } EntityManager em;... List<Blad> wyn = null; wyn = em.createnamedquery("findbykeyword").setparameter("keyword", "%krytyczny%").getresultlist(); 25

26 Java Persistence Query Language (JPQL) Umożliwia formułowanie przenaszalnych zapytań, niezależnych od specyfiki poszczególnych systemów Zapytania operują na abstrakcyjnym schemacie obejmującym encje i związki między nimi Składnia podobna do SQL: zapytania SELECT-FROM-WHERE-GROUP BY-HAVING- ORDER BY polecenia UPDATE i DELETE dla masowych operacji modyfikacji i usuwania: UPDATE-SET-WHERE, DELETE- FROM-WHERE Wyrażenia ścieżkowe do nawigacji do związanych encji JPQL - Przykłady Nawigacja do kolekcji powiązanych instancji encji SELECT DISTINCT w FROM Wykonawca w, IN(w.albumy) a Wyrażenie ścieżkowe SELECT DISTINCT w FROM Wykonawca w JOIN w.albumy a SELECT a FROM Album a WHERE a.wykonawca.nazwa = Mandaryna 26

27 Podsumowanie Dostęp do baz danych w aplikacjach języka Java operujących na złożonym obiektowym modelu biznesowym realizowany jest w oparciu o technologie odwzorowania obiektowo-relacyjnego (O/RM) Powstało kilka technologii O/RM, z których największą popularność zyskał Hibernate Java Persistence to standard oparty o odwzorowanie obiektowo-relacyjne, definiujący standardowe API Java Persistence jest wynikiem prac nad EJB 3.0, ale może być i zakłada się że będzie wykorzystywany również bez połączenia z EJB Materiały dodatkowe Hibernate, The Java EE 5 Tutorial, 27

Odwzorowanie obiektowo-relacyjne

Odwzorowanie obiektowo-relacyjne Odwzorowanie obiektowo-relacyjne Wykład prowadzi: Marek Wojciechowski Odwzorowanie obiektowo-relacyjne 1 Plan wykładu Odwzorowanie obiektowo-relacyjne (O/RM) Hibernate Java Persistence Odwzorowanie obiektowo-relacyjne

Bardziej szczegółowo

mgr inż. Michał Paluch

mgr inż. Michał Paluch Spring DAO Wzorzec projektowy Data Access Object (DAO) rozdzielenie mechanizmu trwałości obiektów od reguł biznesowych Oferuje wsparcie dla interfejsu JDBC narzędzi ORM: Hibernate, JDO, ibatis SQL Maps

Bardziej szczegółowo

Dostęp do baz danych w aplikacjach Java EE

Dostęp do baz danych w aplikacjach Java EE Dostęp do baz danych w aplikacjach Java EE Wykład prowadzi: Marek Wojciechowski JDBC SQLJ Plan wykładu Biblioteka znaczników JSTL SQL EJB (do wersji 2.1) Odwzorowanie obiektowo-relacyjne (O/RM) Java Persistence

Bardziej szczegółowo

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Wirtualne przedsiębiorstwo II Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Łukasz Macierzyński 157588 Daniel Nikończuk 157621 Kacper Oko 157626 Agenda 1. Co to jest mapowanie obiektowo-relacyjne

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Obiekt interfejsu Session Jest to podstawowy interfejs komunikacji pomiędzy aplikacją, a API Hibernate

Bardziej szczegółowo

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.pl Konwersja i walidacja W wyniku działania konwersji i walidacji surowe dane, przesyłane w postaci

Bardziej szczegółowo

Podejście obiektowe do relacyjnych baz danych Hibernate.

Podejście obiektowe do relacyjnych baz danych Hibernate. Podejście obiektowe do relacyjnych baz danych Hibernate. Plan wykładu Czym jest Hibernate? Jakie są zalety pracy z Hibernate? Jak skonfigurować Hibernate? Jak korzystać z Hibernate? Praktyczne przykłady

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

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

Co nowego w Java EE?

Co nowego w Java EE? Co nowego w Java EE? Marek Wojciechowski Politechnika Poznańska e mail: Marek.Wojciechowski@cs.put.poznan.pl Abstrakt. Najnowsza wersja specyfikacji Java Platform Enterprise Edition wprowadza szereg istotnych

Bardziej szczegółowo

Co nowego w Java EE?

Co nowego w Java EE? XII Konferencja PLOUG Zakopane Październik 2006 Co nowego w Java EE? Marek Wojciechowski Politechnika Poznańska e mail: Marek.Wojciechowski@cs.put.poznan.pl Abstrakt Najnowsza wersja specyfikacji Java

Bardziej szczegółowo

JAVA PERSISTENCE API CZĘŚĆ 2 ASPEKTY ZAAWANSOWANE. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

JAVA PERSISTENCE API CZĘŚĆ 2 ASPEKTY ZAAWANSOWANE. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska JAVA PERSISTENCE API CZĘŚĆ 2 Waldemar Korłub ASPEKTY ZAAWANSOWANE Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska JPA w aplikacji Java EE Połączeniem z bazą danych zarządza serwer aplikacji

Bardziej szczegółowo

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

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów. Hibernate Każda poważniejsza aplikacja wymaga przechowywania danych w jakiejś bazie danych. Można realizować to na wiele sposobów. Można obsługę bazy danych pisać samodzielnie, do zera, albo skorzystać

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 24 maja 2018 Plan wykładu 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 509 / 553 Plan wykładu Trwałość obiektów 1 Trwałość obiektów

Bardziej szczegółowo

Podstawowe wykorzystanie Hibernate

Podstawowe wykorzystanie Hibernate Podstawowe wykorzystanie Hibernate Cel Wykonanie prostej aplikacji webowej przedstawiającą wykorzystanie biblioteki. Aplikacja sprawdza w zależności od wybranej metody dodaje, nową pozycje do bazy, zmienia

Bardziej szczegółowo

Programowanie wielowarstwowe i komponentowe

Programowanie wielowarstwowe i komponentowe Programowanie wielowarstwowe i komponentowe HIBERNATE CD. Rodzaje relacji Jeden do wielu Pojedyncza Osoba ma wiele Wpisów Wiele do jednego Wiele Wpisów należy do jednej Osoby Jeden do jednego Pojedyncza

Bardziej szczegółowo

Tworzenie aplikacji dla Oracle Application Server 10g R3 w technologii EJB 3.0

Tworzenie aplikacji dla Oracle Application Server 10g R3 w technologii EJB 3.0 Tworzenie aplikacji dla Oracle Application Server 10g R3 w technologii EJB 3.0 Marek Wojciechowski Politechnika Poznańska, PLOUG e mail: Marek.Wojciechowski@cs.put.poznan.pl Abstrakt. Jedną z nowych cech

Bardziej szczegółowo

Hibernate. Adrian Gawor, Adam Klekotka, Piotr Kubisz. Technologie Biznesu Elektronicznego. 12 maja 2009

Hibernate. Adrian Gawor, Adam Klekotka, Piotr Kubisz. Technologie Biznesu Elektronicznego. 12 maja 2009 Agenda Hibernate Adrian Gawor, Adam Klekotka, Piotr Kubisz Technologie Biznesu Elektronicznego 12 maja 2009 Adrian Gawor, Adam Klekotka, Piotr Kubisz Hibernate 1 / 42 Agenda 1 2 3 4 5 6 7 Adrian Gawor,

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

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

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Architektura Trwałość przezroczysta Konfiguracja, konfiguracja mapowania Dziedziczenie klas Kolekcje Asocjacje Cykl życia obiektów Trwałość przechodnia

Bardziej szczegółowo

Odwzorowanie obiektowo-relacyjne. Wykład opracował: Tomasz Koszlajda

Odwzorowanie obiektowo-relacyjne. Wykład opracował: Tomasz Koszlajda Odwzorowanie obiektowo-relacyjne Wykład opracował: Tomasz Koszlajda Odwzorowanie obiektowo-relacyjne Odwzorowanie obiektowej architektury systemu informatycznego w relacyjne struktury danych bazy danych

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 28.04.2014 WYKŁAD 9 Trwałość w Java cz. 2 wykład

Bardziej szczegółowo

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy Obiektowy model Wykład prowadzi: Tomasz Koszlajda Plan wykładu Przesłanki dla nowej generacji systemów baz Podstawowe elementy obiektowego modelu Konstruktory złożonych typów Abstrakcyjne

Bardziej szczegółowo

Post-relacyjne bazy danych

Post-relacyjne bazy danych Post-relacyjne bazy danych Historia języka SQL 1. Sequel-XRM 2. Sequel/2 SQL 3. ANSI SQL 1986 (ISO 1987) 4. X/Open (UNIX), SAA(IBM) 5. ANSI SQL 1989 6. ANSI/ISO SQL 92 Entry level 7. ANSI SQL 92 (SQL 2)

Bardziej szczegółowo

Enterprise JavaBeans 3.0

Enterprise JavaBeans 3.0 Enterprise JavaBeans 3.0 Jacek Laskowski http://www.jaceklaskowski.pl Politechnika Poznańska Poznań, 07.12.2007, wersja 1 O mnie... Entuzjasta technologii Java EE 5 Założyciel i lider Warszawa JUG Członek

Bardziej szczegółowo

Hibernate. Od Nowicjusza do Profesjonalisty. Dave Minter Jeff Linwood

Hibernate. Od Nowicjusza do Profesjonalisty. Dave Minter Jeff Linwood Hibernate Od Nowicjusza do Profesjonalisty Dave Minter Jeff Linwood Beginning Hibernate: From Novice to Professional ISBN-13 (pbk): 978-1-59059-693-7 ISBN-10 (pbk): 1-59059-693-5 Original edition Copyright

Bardziej szczegółowo

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy danych Obiektowo-relacyjne bazy danych Wykład prowadzi: Tomasz Koszlajda Obiektowo-relacyjne bazy danych Ewolucja rozszerzeń relacyjnego modelu danych: Składowanie kodu procedur w bazie

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

Projektowanie aplikacji z bazami danych

Projektowanie aplikacji z bazami danych Systemy mapowania relacyjno-obiektowego Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Wprowadzenie do trwałości Niedopasowanie paradygmatów Architektura warstwowa Czym jest ORM? Problemy i pytania

Bardziej szczegółowo

JAVA PERSISTENCE API. Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika. Waldemar Korłub

JAVA PERSISTENCE API. Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika. Waldemar Korłub Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika JAVA PERSISTENCE API Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Java Persistence API 2 Specyfikacja dla bibliotek

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

Hibernate mapowanie baz danych

Hibernate mapowanie baz danych Hibernate mapowanie baz danych Jest to technologia pozwalająca mapować dane obiektowe na odpowiadające im struktury w bazach danych. ORM - Object-to-Relational Mapping. Jest odpowiedzią na znikomą ilość

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

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek Enterprise JavaBean EJB 2.x oraz zmiany w standardzie dla EJB 3.0 Michał Stanek Plan prezentacji Czym jest EJB Architektura aplikacji J2EE oraz kontener EJB Typy komponentów JavaBean EJB 1.0, EJB 2.x Wady

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML)

Bardziej szczegółowo

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Obsługa transakcji rozproszonych w języku j Java Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Plan prezentacji Transakcje i ich własności Proste transakcje w JDBC

Bardziej szczegółowo

Nowy powiew od Słońca: EJB 3.0. Copyright Piotr Kochański & Erudis,

Nowy powiew od Słońca: EJB 3.0. Copyright Piotr Kochański & Erudis, Nowy powiew od Słońca: EJB 3.0 Wstęp Agenda EJB podstawowe informacje Problemy EJB 1.X i 2.X Zmiany wprowadzone w EJB v. 3.0 uproszczone API nowe komponenty encyjne wzorce i antywzorce Przykład, czyli

Bardziej szczegółowo

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

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

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity

Bardziej szczegółowo

Gdzie jest moja tabela?

Gdzie jest moja tabela? Gdzie jest moja tabela? Czyli jak sobie radzić w Javie i SQL gdy zmienia się schemat bazy danych. Tomasz Skutnik 21 Listopada 2011 r UWIELBIAM piratów programować. Dziś koduję sklep internetowy. Jak rozmawiać

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

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

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

NHibernate. Narzędzie mapowania obiektowo - relacyjnego

NHibernate. Narzędzie mapowania obiektowo - relacyjnego NHibernate Narzędzie mapowania obiektowo - relacyjnego Autor : Maciej Białorucki Mapowanie obiektowo-relacyjne Mapowanie obiektowo - relacyjne Object Relation Mapping Dwa światy Dlaczego nie stosować baz

Bardziej szczegółowo

Podstawy frameworka Spring

Podstawy frameworka Spring Podstawy frameworka Spring Adresaci szkolenia: Szkolenie przeznaczone jest dla programistów znających język Java, chcących poszerzyć swoje kompetencje w zakresie tworzenia aplikacji.koncepcja szkolenia

Bardziej szczegółowo

Java Persistence API - zagadnienia zaawansowane

Java Persistence API - zagadnienia zaawansowane Program szkolenia: Java Persistence API - zagadnienia zaawansowane Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Java Persistence API - zagadnienia zaawansowane Java-EE-jpa-pro

Bardziej szczegółowo

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Kod szkolenia: Tytuł szkolenia: EJB Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Dni: 3 Opis: Adresaci szkolenia: Szkolenie adresowane jest

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013 Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013 1 Automated code generation To bardziej technika wspomagająca niż wzorzec, ale wykorzystywana w praktyce

Bardziej szczegółowo

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład.

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład. Java i bazy danych 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład. 1 JDBC - wprowadzenie Java Database Connectivity (JDBC) to specyfkacja określająca zbiór klas i interfejsów

Bardziej szczegółowo

Zaawansowane Techniki Bazodanowe

Zaawansowane Techniki Bazodanowe Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Zaawansowane Techniki Bazodanowe Krzysztof Koptyra, Dawid Tomaszewski Raport

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Metody dostępu do danych JDBC - Java Database Connectivity JDO - Java Data Object ORM - Object-Relational

Bardziej szczegółowo

Karolina Rusin, Paweł Biczysko, Michał Olejnik. 11 maja 2009

Karolina Rusin, Paweł Biczysko, Michał Olejnik. 11 maja 2009 Konfiguracja i poprawne stosowanie Politechnika Wrocławska Informatyka 11 maja 2009 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Technologie odwzorowania obiektowo-relacyjnego: Hibernate. Plan prezentacji. Technologie dostępu do baz danych. z aplikacji J2EE

Technologie odwzorowania obiektowo-relacyjnego: Hibernate. Plan prezentacji. Technologie dostępu do baz danych. z aplikacji J2EE Technologie odwzorowania obiektowo-relacyjnego: Hibernate Technologie dostępu do baz danych z aplikacji J2EE JDBC Podstawowy interfejs dostępu do baz danych Ręczne kodowanie w JDBC uciążliwe i podatne

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

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

Wzorce dystrybucji i wspólbieżności autonomicznej

Wzorce dystrybucji i wspólbieżności autonomicznej Wzorce dystrybucji i wspólbieżności autonomicznej 1. Wzorce dystrybucji, fasada zdalna (Remote Facade), obiekt transfery danych (Data Transfer Object), 2. Wzorce współbieżności autonomicznej, blokada optymistyczna

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

Technologie dostępu do baz danych z aplikacji Javy:

Technologie dostępu do baz danych z aplikacji Javy: Technologie dostępu do baz danych z aplikacji Javy: JDBC (ang. Java DataBase Connectivity - łącze do baz danych w języku Java) - interfejs programowania opracowany w 1996 r. przez Sun Microsystems, umożliwiający

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2012 Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli Modele danych Definicje

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Bazy danych Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2016 Plan wykładu Wstęp do baz danych Modele baz danych Relacyjne bazy danych Język SQL Rodzaje

Bardziej szczegółowo

Kurs programowania aplikacji bazodanowych

Kurs programowania aplikacji bazodanowych Wykład 5 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Wprowadzenie do XPO Podstawowe obiekty Utrwalanie obiektów Transakcje i współbieżność Wzorzec unit of work Odwzorowanie dziedziczenia Asocjacje

Bardziej szczegółowo

Automatyczne generowanie kodu. Marek.Berkan@e-point.pl. 4Developers, 26 marca 2010

Automatyczne generowanie kodu. Marek.Berkan@e-point.pl. 4Developers, 26 marca 2010 4Developers, 26 marca 2010 Zakres wykładu O czym zamierzam opowiedzieć: Przyspieszenie tworzenia aplikacji Ułatwienie utrzymania aplikacji Budowanie kontraktów pomiędzy developerami a innymi uczestnikami

Bardziej szczegółowo

EJB 3.0 (Enterprise JavaBeans 3.0)

EJB 3.0 (Enterprise JavaBeans 3.0) EJB 3.0 (Enterprise JavaBeans 3.0) Adrian Dudek Wirtualne Przedsiębiorstwo 2 Wrocław, 1 czerwca 2010 Plan prezentacji 1 Wprowadzenie Cel prezentacji Czym jest EJB 3.0? Historia 2 3 Cel prezentacji Wprowadzenie

Bardziej szczegółowo

JPA Java Persistance API

JPA Java Persistance API JPA Java Persistance API Java Persistence API (JPA) Specyfiacja ipisująca standardy mapiwania ibieitiwi-relacyjnegi (ORM ibject relatinal mapping) Przyiładiwe implementacje: Hibernate OpenJPA EclipseLini

Bardziej szczegółowo

Hibernate. 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład.

Hibernate. 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład. 1 Hibernate 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład. 2 Wprowadzenie Hibernate (http://www.hibernate.org) jest narzędziem realizującym odwzorowanie obiektów Javy na

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016 Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016 Repository dodatkowa warstwa abstrakcji na obiektową warstwę dostępu do danych.

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

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006 OBIEKTOWOŚĆ W BAZIE DANYCH ORACLE Monika Kruk Mariusz Grabowski Informatyka Stosowana WFiIS, AGH 13 grudzień 2006 Plan prezentacji kilka słów o bazie danych ORACLE rzecz o obiektach ORACLE tworzenie typów

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

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

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 14 Piotr Syga 18.01.2019 Motywacja Ograniczenia relacyjnych baz danych proste typu i struktury klucze (w tym sztuczne) relacje między tabelami uwzględniane w triggerach

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Wprowadzenie do JDBC z wykorzystaniem bazy H2 Wprowadzenie do JDBC z wykorzystaniem bazy H2 JDBC (ang. Java DataBase Connectivity). Biblioteka stanowiąca interfejs umożliwiający aplikacjom napisanym w języku Java porozumiewać się z bazami danych za

Bardziej szczegółowo

Technologie odwzorowania. owania obiektowo-relacyjnego. relacyjnego: Hibernate

Technologie odwzorowania. owania obiektowo-relacyjnego. relacyjnego: Hibernate 15 Technologie odwzorowania owania obiektowo-relacyjnego relacyjnego: Hibernate Plan prezentacji 16 Wprowadzenie do technologii odwzorowania obiektowo-relacyjnego Architektura Hibernate Odwzorowanie klas

Bardziej szczegółowo

MSI dr. Inż. Mariusz Trzaska. obiektowych językach programowania

MSI dr. Inż. Mariusz Trzaska. obiektowych językach programowania MSI dr. Inż. Mariusz Trzaska Wykład 12 Wykorzystanie modelu relacyjnego w obiektowych językach programowania o Model relacyjny Zagadnienia o Przyczyny popularności relacyjnych baz danych. o Mapowanie poszczególnych

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie warstwy danych Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja relacyjnej

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2014 Plan wykładu 1 Projekt 2 Modele danych 3 4 5 Marcin Młotkowski Programowanie w Ruby 2 / 38 Zasady Projekt Składowe projektu przynajmniej

Bardziej szczegółowo

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

Programowanie w języku Java. Bazy danych SQLite w Javie Programowanie w języku Java Bazy danych SQLite w Javie Co to jest SQLite SQLite to bezserwerowa, nie wymagająca konfiguracji relacyjna baza danych. Znajduje szerokie zastosowanie np.. w systemie android

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

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

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

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

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 6 Marcin Młotkowski 14 listopada 2012 Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records Szeregowanie obiektów Obiekt Serializacja @tytul = 'Pan Tadeusz'

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

JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński

JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński JAVA bazy danych na bazie: Język Java - Podstawy Programowania - Jacek Rumiński Plan wykładu Sposoby połączenia z bazą danych Sterowniki JDBC Połączenie z bazą danych poprzez JDBC Język SQL (Structured

Bardziej szczegółowo

Model semistrukturalny

Model semistrukturalny Model semistrukturalny standaryzacja danych z różnych źródeł realizacja złożonej struktury zależności, wielokrotne zagnieżdżania zobrazowane przez grafy skierowane model samoopisujący się wielkości i typy

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Konstruktory Konstruktory w językach obiektowych są to specjalne metody wywoływane podczas tworzenia nowego obiektu i służące do

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo