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

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

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

Transkrypt

1 Konfiguracja i poprawne stosowanie Politechnika Wrocławska Informatyka 11 maja 2009

2 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie 4 Poprawne korzystanie z - wzorzec DAO 5 Podstawowe mapowania 6 Zaawansowane mapowania 7 Konstruowanie zapytań w języku HQL 8 Zaawansowane zapytania 9

3 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie 4 Poprawne korzystanie z - wzorzec DAO 5 Podstawowe mapowania 6 Zaawansowane mapowania 7 Konstruowanie zapytań w języku HQL 8 Zaawansowane zapytania 9

4 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie 4 Poprawne korzystanie z - wzorzec DAO 5 Podstawowe mapowania 6 Zaawansowane mapowania 7 Konstruowanie zapytań w języku HQL 8 Zaawansowane zapytania 9

5 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie 4 Poprawne korzystanie z - wzorzec DAO 5 Podstawowe mapowania 6 Zaawansowane mapowania 7 Konstruowanie zapytań w języku HQL 8 Zaawansowane zapytania 9

6 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Persystencja danych w aplikacjach obiektowych Persystencja danych oznacza, że żyją one dłużej niż aplikacja, która z nich korzysta. Pozwala ona na zapisanie i odtworzenie stanu całych sieci obiektów. Wybór sposobu zarządzania danymi persystentnymi jest jedną z kluczowych decyzji projektowych. W chwili obecnej najpopularniejszą technologią stosowaną do przechowywania utrwalanych danych są relacyjne bazy.

7 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Persystencja danych w aplikacjach obiektowych Persystencja danych oznacza, że żyją one dłużej niż aplikacja, która z nich korzysta. Pozwala ona na zapisanie i odtworzenie stanu całych sieci obiektów. Wybór sposobu zarządzania danymi persystentnymi jest jedną z kluczowych decyzji projektowych. W chwili obecnej najpopularniejszą technologią stosowaną do przechowywania utrwalanych danych są relacyjne bazy.

8 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Persystencja danych w aplikacjach obiektowych Persystencja danych oznacza, że żyją one dłużej niż aplikacja, która z nich korzysta. Pozwala ona na zapisanie i odtworzenie stanu całych sieci obiektów. Wybór sposobu zarządzania danymi persystentnymi jest jedną z kluczowych decyzji projektowych. W chwili obecnej najpopularniejszą technologią stosowaną do przechowywania utrwalanych danych są relacyjne bazy.

9 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów Niezgodność paradygmatu obiektowego z paradygmatem relacyjnym (object/relational paradigm mismatch). Nowoczesne języki programowania opierają się na modelu obiektowym - dane są reprezentowane przy pomocy sieci obiektów Najpopularniejszą metodą utrwalania (persystencji) danych relacyjne bazy, w których do ich reprezentacji wykorzystywane są tabele Sprzeczność tych modeli jest przyczyną wielu problemów w procesie wytwarzania nowoczesnego oprogramowania.

10 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów Niezgodność paradygmatu obiektowego z paradygmatem relacyjnym (object/relational paradigm mismatch). Nowoczesne języki programowania opierają się na modelu obiektowym - dane są reprezentowane przy pomocy sieci obiektów Najpopularniejszą metodą utrwalania (persystencji) danych relacyjne bazy, w których do ich reprezentacji wykorzystywane są tabele Sprzeczność tych modeli jest przyczyną wielu problemów w procesie wytwarzania nowoczesnego oprogramowania.

11 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów Niezgodność paradygmatu obiektowego z paradygmatem relacyjnym (object/relational paradigm mismatch). Nowoczesne języki programowania opierają się na modelu obiektowym - dane są reprezentowane przy pomocy sieci obiektów Najpopularniejszą metodą utrwalania (persystencji) danych relacyjne bazy, w których do ich reprezentacji wykorzystywane są tabele Sprzeczność tych modeli jest przyczyną wielu problemów w procesie wytwarzania nowoczesnego oprogramowania.

12 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów Niezgodność paradygmatu obiektowego z paradygmatem relacyjnym (object/relational paradigm mismatch). Nowoczesne języki programowania opierają się na modelu obiektowym - dane są reprezentowane przy pomocy sieci obiektów Najpopularniejszą metodą utrwalania (persystencji) danych relacyjne bazy, w których do ich reprezentacji wykorzystywane są tabele Sprzeczność tych modeli jest przyczyną wielu problemów w procesie wytwarzania nowoczesnego oprogramowania.

13 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

14 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

15 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

16 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

17 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

18 Konfiguracja i poprawne stosowanie Czym jest ORM? Wprowadzenie do ORM jako narzędzie ORM ORM (Object/Relational Mapping) jest obecnie uznawane za najlepsze rozwiązanie problemów wynikających z niezgodności paradygmatów obiektowego i relacyjnego. ORM zapewnia automatyczną i przeźroczystą persystencję obiektów w relacyjnej baze danych. ORM wykorzystuje metadane, które służą do opisywania mapowań zachodzacych między klasami a tabelami [1].

19 Konfiguracja i poprawne stosowanie Czym jest ORM? Wprowadzenie do ORM jako narzędzie ORM ORM (Object/Relational Mapping) jest obecnie uznawane za najlepsze rozwiązanie problemów wynikających z niezgodności paradygmatów obiektowego i relacyjnego. ORM zapewnia automatyczną i przeźroczystą persystencję obiektów w relacyjnej baze danych. ORM wykorzystuje metadane, które służą do opisywania mapowań zachodzacych między klasami a tabelami [1].

20 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Historia jest najpopularniejszym narzędziem wspierającym ORM. Do głównych przyczyn jego popularności możemy zaliczyć: Jest darmowy i rozwijany na licencji open source Inicjatorem i liderem projektu jest Gavin King Pierwsze wydanie zostało udostępnione w 2001 roku Najnowsze wydanie projektu ma wersję 3.3.1

21 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Historia jest najpopularniejszym narzędziem wspierającym ORM. Do głównych przyczyn jego popularności możemy zaliczyć: Jest darmowy i rozwijany na licencji open source Inicjatorem i liderem projektu jest Gavin King Pierwsze wydanie zostało udostępnione w 2001 roku Najnowsze wydanie projektu ma wersję 3.3.1

22 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Historia jest najpopularniejszym narzędziem wspierającym ORM. Do głównych przyczyn jego popularności możemy zaliczyć: Jest darmowy i rozwijany na licencji open source Inicjatorem i liderem projektu jest Gavin King Pierwsze wydanie zostało udostępnione w 2001 roku Najnowsze wydanie projektu ma wersję 3.3.1

23 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Historia jest najpopularniejszym narzędziem wspierającym ORM. Do głównych przyczyn jego popularności możemy zaliczyć: Jest darmowy i rozwijany na licencji open source Inicjatorem i liderem projektu jest Gavin King Pierwsze wydanie zostało udostępnione w 2001 roku Najnowsze wydanie projektu ma wersję 3.3.1

24 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

25 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

26 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

27 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

28 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

29 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

30 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

31 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

32 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

33 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Konfiguracja w projekcie Aby móc używać w naszym projekcie, musimy dołączyć do niego m.in. następujące biblioteki: hibernate3.jar hibernate-annotations.jar hibernate-entitymanager.jar Dwie ostatnie biblioteki są niezbędne, jeżeli chcemy wykorzystywać do mapowania adnotacje.

34 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Konfiguracja w projekcie Aby móc używać w naszym projekcie, musimy dołączyć do niego m.in. następujące biblioteki: hibernate3.jar hibernate-annotations.jar hibernate-entitymanager.jar Dwie ostatnie biblioteki są niezbędne, jeżeli chcemy wykorzystywać do mapowania adnotacje.

35 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Konfiguracja - mapowania XML Dla każdej z klas, które chcemy poddać procesowi mapowania, tworzony jest plik o nazwie: NAZWA KLASY.hbm.xml W pliku tym znajdują się metadane, które definiują m.in. w jaki sposób ma odwzorowywać obiekty tej klasy na tabele bazodanowe. Jest on umieszczony w tym samym katalogu co plik klasy. Dane związane z konfiguracją samego umieszczamy w pliku hibernate.cfg.xml, który musi zostać umieszczony bezpośrednio w katalogu źródłowym projektu poza wszelkimi pakietami.

36 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Konfiguracja - mapowania za pomocą adnotacji W przypadku wykorzystania adnotacji do wykonania mapowań nie musimy tworzyć plików hbm.xml. Adnotacje umieszczamy bezpośrednio w plikach źródłowych klasy, którą mapujemy. Dane związane z konfiguracją są tym razem zawarte w pliku persistence.xml, który musi zostać umieszczony w katalogu META-INF.

37 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Wykorzystywanie dostarczanych interfejsów (a także JPA) dostarcza nam szereg klas i interfejsów, które powinniśmy wykorzystywać w operacjach związanych z persystencją danych i wymagających komunikacji z bazą danych. Do najważniejszych zaliczamy: SessionFactory (EntityManagerFactory - służy do tworzenia obiektów Session (EntityManager) Session (EntityManager) - reprezentuje poszczególną jednostkę pracy z bazą danych - służy m.in. do zapisywania i ładowania obiektów Query (Query) - API używane do tworzenia i wykonywania zapytań do bazy danych Transaction (EntityTransaction - API używane do programistycznej demarkacji transakcji

38 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Wykorzystywanie dostarczanych interfejsów (a także JPA) dostarcza nam szereg klas i interfejsów, które powinniśmy wykorzystywać w operacjach związanych z persystencją danych i wymagających komunikacji z bazą danych. Do najważniejszych zaliczamy: SessionFactory (EntityManagerFactory - służy do tworzenia obiektów Session (EntityManager) Session (EntityManager) - reprezentuje poszczególną jednostkę pracy z bazą danych - służy m.in. do zapisywania i ładowania obiektów Query (Query) - API używane do tworzenia i wykonywania zapytań do bazy danych Transaction (EntityTransaction - API używane do programistycznej demarkacji transakcji

39 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Wykorzystywanie dostarczanych interfejsów (a także JPA) dostarcza nam szereg klas i interfejsów, które powinniśmy wykorzystywać w operacjach związanych z persystencją danych i wymagających komunikacji z bazą danych. Do najważniejszych zaliczamy: SessionFactory (EntityManagerFactory - służy do tworzenia obiektów Session (EntityManager) Session (EntityManager) - reprezentuje poszczególną jednostkę pracy z bazą danych - służy m.in. do zapisywania i ładowania obiektów Query (Query) - API używane do tworzenia i wykonywania zapytań do bazy danych Transaction (EntityTransaction - API używane do programistycznej demarkacji transakcji

40 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Wykorzystywanie dostarczanych interfejsów (a także JPA) dostarcza nam szereg klas i interfejsów, które powinniśmy wykorzystywać w operacjach związanych z persystencją danych i wymagających komunikacji z bazą danych. Do najważniejszych zaliczamy: SessionFactory (EntityManagerFactory - służy do tworzenia obiektów Session (EntityManager) Session (EntityManager) - reprezentuje poszczególną jednostkę pracy z bazą danych - służy m.in. do zapisywania i ładowania obiektów Query (Query) - API używane do tworzenia i wykonywania zapytań do bazy danych Transaction (EntityTransaction - API używane do programistycznej demarkacji transakcji

41 Konfiguracja i poprawne stosowanie Wykorzystywanie narzędzia hbm Konfiguracja Poprawne stosowanie dostarcza nam narzędzie, które na podstawie plików źródłowych oraz związanych z nim metadanych jest w stanie automatycznie wygenerować schemat bazy danych. Istnieje także możliwość tzw. reverse engineering - to jest wygenerowania na podstawie schematu bazy danych klas wchodzących w skład modelu dziedzinowego, plików z mapowaniami, pliku konfiguracyjnego, a nawet klas odpowiedzialnych za dostęp do danych.

42 Konfiguracja i poprawne stosowanie Wzorzec DAO Konfiguracja Poprawne stosowanie Wzorzec DAO - struktura [1]

43 Konfiguracja i poprawne stosowanie Wzorzec DAO Konfiguracja Poprawne stosowanie Ta wersja wzorca DAO wykorzystuje mechanizm wprowadzone w Java 5 - typy generyczne. Opiera się na dwóch równoległych hierarchiach dziedziczenia. Wszelka operacje wymagające komunikacji z baza danych powinny być wykonywane z wykorzystaniem odpowiednich obiektów DAO.

44 Konfiguracja i poprawne stosowanie Sposoby mapowania Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Deskryptor XML Adnotacje Równoważność sposobów mapowania

45 Konfiguracja i poprawne stosowanie Sposoby mapowania Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Deskryptor XML Adnotacje Równoważność sposobów mapowania

46 Konfiguracja i poprawne stosowanie Sposoby mapowania Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Deskryptor XML Adnotacje Równoważność sposobów mapowania

47 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Mapowanie zewnętrzne - deskryptor XML Zalety: Wady: Wszystkie elementy mapowania znajdują się w jednym miejscu - zmiana całego mapowania Wymaga edytora XML dla czytelności Problem z cztelnością wraz z narastaniem mapowań

48 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Mapowanie zewnętrzne - deskryptor XML Zalety: Wady: Wszystkie elementy mapowania znajdują się w jednym miejscu - zmiana całego mapowania Wymaga edytora XML dla czytelności Problem z cztelnością wraz z narastaniem mapowań

49 Konfiguracja i poprawne stosowanie Mapowanie adnotacjami Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Zalety: Mapowanie znajduje się tam gdzie mapowane dane Czytelność dla przeciętnego programisty Mapowanie przy polach lub getterach Wady: Adnotacje wprowadzono w Javie 1.5 Brak podpowiadania składni w IDE

50 Konfiguracja i poprawne stosowanie Mapowanie adnotacjami Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Zalety: Mapowanie znajduje się tam gdzie mapowane dane Czytelność dla przeciętnego programisty Mapowanie przy polach lub getterach Wady: Adnotacje wprowadzono w Javie 1.5 Brak podpowiadania składni w IDE

51 Konfiguracja i poprawne stosowanie Mapowanie encji Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 package...; 2 3 import javax. persistence. Entity ; 4 import javax. persistence. Table ; 5 ( name = " USERS ") 8 public class User { }

52 Konfiguracja i poprawne stosowanie Komponenty - obiekty osadzone Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Klasa osadzona: 1 package...; 2 3 import javax. persistence. Embeddable ; 4 6 public class Address { }

53 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Korzystanie z obiektów osadzonych Wykorzystanie klasy osadzonej: 1 import javax. persistence. Embeddable ; 2 3 public class User { private Address shippingaddress ; 7 9 public Address getshippingaddress () { 10 return shippingaddress ; 11 } }

54 Konfiguracja i poprawne stosowanie Podstawowe mapowanie pola Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. Basic ; 2 3 public class User { private String ; 7 9 public String get () { 10 return ; 11 } }

55 Konfiguracja i poprawne stosowanie Mapowanie pola nieutrwalanego Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. Transient ; 2 3 public class User { private String ; 7 9 public String get () { 10 return ; 11 } }

56 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Mapowanie pola i ograniczenia UNIQUE 1 import javax. persistence. Column ; 2 3 public class User { private String username ; 7 ( name = " USER_NAME ", 9 unique = true, nullable = false, length = 30) 10 public String getusername () { 11 return username ; 12 } }

57 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Mapowanie ograniczenia PRIMARY KEY 1 import javax. persistence. Id; 2 3 public class User { private String username ; 7 9 public String getusername () { 10 return username ; 11 } }

58 Konfiguracja i poprawne stosowanie Generowanie klucza głównego Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. GeneratedValue ; 2 import javax. persistence. GenerationType ; 3 import javax. persistence. Id; 4 5 public class Item { private Long itemid ; 9 ( strategy = GenerationType. IDENTITY ) 12 public Long getitemid () { 13 return itemid ; 14 } }

59 Konfiguracja i poprawne stosowanie Związek 1-1 Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. OneToOne ; 2 3 public class Item { private Bid winningbid ; 7 9 public Bid getwinningbid () { 10 return winningbid ; 11 } }

60 Konfiguracja i poprawne stosowanie Związek n-1 Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. ManyToOne ; 2 3 public class Bid { private Item biddeditem ; 7 9 public Item getbiddeditem () { 10 return biddeditem ; 11 } }

61 Konfiguracja i poprawne stosowanie Związek dwukierunkowy Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. OneToMany ; 2 3 public class Item { private List <Bid > bids ; 7 ( mappedby = " biddeditem ") 9 public List <Bid > getbids () { 10 return bids ; 11 } }

62 Konfiguracja i poprawne stosowanie Związek n-m Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. JoinColumn ; 2 import javax. persistence. JoinTable ; 3 import javax. persistence. ManyToMany ; 4 5 public class Item { private List < Category > itemcategories ; 9 ( name = " CATEGORIES_ITEMS ", 12 joincolumns ( name = " ITEM_ID "), 13 inversejoincolumns ( name = " CATEGORY_NAME ") 14 ) 15 public List < Category > getitemcategories () { 16 return itemcategories ; 17 } }

63 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Związek generalizacji - klasa rozszerzana Klasa generalizująca: 1 import javax. persistence. Id; 2 import javax. persistence. Inheritance ; 3 import javax. persistence. InheritanceType ; 4 ( strategy = InheritanceType. JOINED ) 6 public class Person { private String name ; public String getname () { 13 return name ; 14 } }

64 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Związek generalizacji - klasa rozszerzona Klasa generalizowana: 1 import javax. persistence. Inheritance ; 2 import javax. persistence. InheritanceType ; 3 ( strategy = InheritanceType. JOINED ) 5 public class Employee extends Person { }

65 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

66 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

67 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

68 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

69 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

70 Konfiguracja i poprawne stosowanie Natywne typy danych Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. Column ; 2 3 public class User { private String username ; 7 ( name = " USER_NAME ", 9 columndefinition = " address (255) not null " 10 ) 11 public String getusername () { 12 return username ; 13 } }

71 Konfiguracja i poprawne stosowanie Złożone ograniczenie UNIQUE Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. Table ; 2 ( 4 name = " USERS ", 5 uniqueconstraints = { ( 7 columnnames = {" FIRST_NAME ", " LAST_NAME "} 8 ) 9 } 10 ) 11 public class User { }

72 Konfiguracja i poprawne stosowanie Ograniczenie CHECK Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka hibernate. annotations. Check ( 2 constraints = " PRICE < MAX_PRICE " 3 ) 4 public class Item { ( name = " PRICE ") hibernate. annotations. Check ( constraints = " PRICE > 0") 9 private Integer price ; ( name = " MAX_PRICE ") 11 private Integer maxprice ; }

73 Konfiguracja i poprawne stosowanie Zakładanie indeksów Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka ( name =" ITEMS ") hibernate. annotations. Table ( 3 appliesto = " ITEMS ", 4 indexes hibernate. annotations. Index 5 ( 6 name = " IDX_NAME ", 7 columnnames = { " FIRST_NAME ", " LAST_NAME " } 8 ) 9 ) 10 public class User { }

74 Praktyka Wprowadzenie Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Praktyczny przykład Mapowanie i utrwalanie w prostym modelu obiektowym reprezentującym aukcje.

75 Konfiguracja i poprawne stosowanie Czym jest HQL? Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL The Query Language HQL jest w pełni obiektowym językiem zapytań o składni podobnej do SQL a. W zapytaniach wykorzystuje się nazwy klas zamiast nazw tabel oraz nazwy atrybutów zamiast nazw column. JPA QL JPA QL jest ustandaryzowanym pozdzbiorem HQL.

76 Konfiguracja i poprawne stosowanie Czym jest HQL? Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL The Query Language HQL jest w pełni obiektowym językiem zapytań o składni podobnej do SQL a. W zapytaniach wykorzystuje się nazwy klas zamiast nazw tabel oraz nazwy atrybutów zamiast nazw column. JPA QL JPA QL jest ustandaryzowanym pozdzbiorem HQL.

77 Konfiguracja i poprawne stosowanie Czym jest HQL? Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL The Query Language HQL jest w pełni obiektowym językiem zapytań o składni podobnej do SQL a. W zapytaniach wykorzystuje się nazwy klas zamiast nazw tabel oraz nazwy atrybutów zamiast nazw column. JPA QL JPA QL jest ustandaryzowanym pozdzbiorem HQL.

78 Konfiguracja i poprawne stosowanie Czym jest HQL? Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL The Query Language HQL jest w pełni obiektowym językiem zapytań o składni podobnej do SQL a. W zapytaniach wykorzystuje się nazwy klas zamiast nazw tabel oraz nazwy atrybutów zamiast nazw column. JPA QL JPA QL jest ustandaryzowanym pozdzbiorem HQL.

79 Konfiguracja i poprawne stosowanie Klauzula SELECT... FROM Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Najprostrze zapytania w HQL u. */ 2 from Book 3 from Book book 4 from Book as book 1 /* Wygenerowany przez a SQL. */ 2 select b. BOOK_ID, b. TITLE, b. DESCRIPTION from BOOK b 1 /* Polimorfizm. */ 2 /* Zapytanie zwróci wszystkie obiekty */ 3 from java. lang. Object 4 /* Działa również dla interfejsów */ 5 from java. io. Serializable

80 Konfiguracja i poprawne stosowanie Klauzula SELECT... FROM Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Najprostrze zapytania w HQL u. */ 2 from Book 3 from Book book 4 from Book as book 1 /* Wygenerowany przez a SQL. */ 2 select b. BOOK_ID, b. TITLE, b. DESCRIPTION from BOOK b 1 /* Polimorfizm. */ 2 /* Zapytanie zwróci wszystkie obiekty */ 3 from java. lang. Object 4 /* Działa również dla interfejsów */ 5 from java. io. Serializable

81 Konfiguracja i poprawne stosowanie Klauzula SELECT... FROM Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Najprostrze zapytania w HQL u. */ 2 from Book 3 from Book book 4 from Book as book 1 /* Wygenerowany przez a SQL. */ 2 select b. BOOK_ID, b. TITLE, b. DESCRIPTION from BOOK b 1 /* Polimorfizm. */ 2 /* Zapytanie zwróci wszystkie obiekty */ 3 from java. lang. Object 4 /* Działa również dla interfejsów */ 5 from java. io. Serializable

82 Konfiguracja i poprawne stosowanie Klauzula WHERE Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Obiektowy zapis zapytań. */ 2 from Book b where b. title = 3 Java Persistence with 1 /* Wygenerowany przez a SQL. */ 2 select u. BOOK_ID, u. TITLE, u. DESCRIPTION 3 from BOOK u 4 where u. TITLE = Java Persistence with 1 /* Inne przykłady. */ 2 from Book b where b. title in ( Pro Wicket, 3 ) 3 from Book b where b. description is null 4 5 /* na zbiorach */ 6 from Category c where c. books is empty

83 Konfiguracja i poprawne stosowanie Klauzula WHERE Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Obiektowy zapis zapytań. */ 2 from Book b where b. title = 3 Java Persistence with 1 /* Wygenerowany przez a SQL. */ 2 select u. BOOK_ID, u. TITLE, u. DESCRIPTION 3 from BOOK u 4 where u. TITLE = Java Persistence with 1 /* Inne przykłady. */ 2 from Book b where b. title in ( Pro Wicket, 3 ) 3 from Book b where b. description is null 4 5 /* na zbiorach */ 6 from Category c where c. books is empty

84 Konfiguracja i poprawne stosowanie Klauzula WHERE Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Obiektowy zapis zapytań. */ 2 from Book b where b. title = 3 Java Persistence with 1 /* Wygenerowany przez a SQL. */ 2 select u. BOOK_ID, u. TITLE, u. DESCRIPTION 3 from BOOK u 4 where u. TITLE = Java Persistence with 1 /* Inne przykłady. */ 2 from Book b where b. title in ( Pro Wicket, 3 ) 3 from Book b where b. description is null 4 5 /* na zbiorach */ 6 from Category c where c. books is empty

85 Konfiguracja i poprawne stosowanie Tworzenie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie obiektu Query umożliwiającego wykonanie zapytania. 1 /* Zapytanie w HQL u. */ 2 Query q1 = session. createquery ( 3 " from Book b where b. title like % Wicket % "); 4 5 /* To samo w JPA QL. */ 6 Query q2 = entitymanager. createquery ( 7 " select b from Book b where b. title like % Wicket % ");

86 Konfiguracja i poprawne stosowanie Tworzenie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie obiektu Query umożliwiającego wykonanie zapytania. 1 /* Zapytanie w HQL u. */ 2 Query q1 = session. createquery ( 3 " from Book b where b. title like % Wicket % "); 4 5 /* To samo w JPA QL. */ 6 Query q2 = entitymanager. createquery ( 7 " select b from Book b where b. title like % Wicket % ");

87 Konfiguracja i poprawne stosowanie Stronnicowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Możliwy jest podział wyników zwracanych przez zapytanie na strony o określonej z góry ilości elementów. 1 /* Zapytanie w HQL u, które zwraca pierwszych 10 2 obiektów, począwszy od 40. */ 3 Query q1 = session. createquery ( 4 " from Book b order by b. id asc ") 5. setfirstresult (2) 6. setmaxresults (2);

88 Konfiguracja i poprawne stosowanie Stronnicowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Możliwy jest podział wyników zwracanych przez zapytanie na strony o określonej z góry ilości elementów. 1 /* Zapytanie w HQL u, które zwraca pierwszych 10 2 obiektów, począwszy od 40. */ 3 Query q1 = session. createquery ( 4 " from Book b order by b. id asc ") 5. setfirstresult (2) 6. setmaxresults (2);

89 Konfiguracja i poprawne stosowanie Parametry w zapytaniach Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Kod wrażliwy na SQL Injection */ 2 String qstring = 3 " from Book b "+ 4 " where b. title like " + search +" "; 5 List result = session. createquery ( qstring ). list (); 1 /* Zapytanie HQL korzystające z parametrów. */ 2 String qstring = " from Book b" 3 + " where b. title like : tit " 4 + " and b. category. name like : cat "; 5 6 Query q = session. createquery ( qstring ) 7. setstring (" tit ", "% %") 8. setdate (" cat ", "C%");

90 Konfiguracja i poprawne stosowanie Parametry w zapytaniach Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Kod wrażliwy na SQL Injection */ 2 String qstring = 3 " from Book b "+ 4 " where b. title like " + search +" "; 5 List result = session. createquery ( qstring ). list (); 1 /* Zapytanie HQL korzystające z parametrów. */ 2 String qstring = " from Book b" 3 + " where b. title like : tit " 4 + " and b. category. name like : cat "; 5 6 Query q = session. createquery ( qstring ) 7. setstring (" tit ", "% %") 8. setdate (" cat ", "C%");

91 Konfiguracja i poprawne stosowanie Wykonywanie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL list() - zwraca wynik w postaci java.util.list uniqueresult() - zwraca pojedynczy wynik iterate() - zapytanie zwraca tylko klucze główne, dopiero gdy wynik jest przeglądany przy pomocy iteratora pobierane są całe obiekty scroll() - udostępnia metody takie jak: first(), last(), next(), scroll(numerwiersza), itp.

92 Konfiguracja i poprawne stosowanie Wykonywanie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL list() - zwraca wynik w postaci java.util.list uniqueresult() - zwraca pojedynczy wynik iterate() - zapytanie zwraca tylko klucze główne, dopiero gdy wynik jest przeglądany przy pomocy iteratora pobierane są całe obiekty scroll() - udostępnia metody takie jak: first(), last(), next(), scroll(numerwiersza), itp.

93 Konfiguracja i poprawne stosowanie Wykonywanie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL list() - zwraca wynik w postaci java.util.list uniqueresult() - zwraca pojedynczy wynik iterate() - zapytanie zwraca tylko klucze główne, dopiero gdy wynik jest przeglądany przy pomocy iteratora pobierane są całe obiekty scroll() - udostępnia metody takie jak: first(), last(), next(), scroll(numerwiersza), itp.

94 Konfiguracja i poprawne stosowanie Wykonywanie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL list() - zwraca wynik w postaci java.util.list uniqueresult() - zwraca pojedynczy wynik iterate() - zapytanie zwraca tylko klucze główne, dopiero gdy wynik jest przeglądany przy pomocy iteratora pobierane są całe obiekty scroll() - udostępnia metody takie jak: first(), last(), next(), scroll(numerwiersza), itp.

95 Konfiguracja i poprawne stosowanie nazwane Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL nazwane umożliwiają zgrupowanie definicji wszystkich zapytań w jednym miejscu. umożliwia definiowanie zapytań nazwanych w plikach XML z mapowaniem lub przy pomocy annotacji w klasie obiektu. 1 /* Tworzenie obiektu Query z zapytania nazwanego */ 2 Query q = session. getnamedquery (" findallbooksbycategory ") 3. setstring (" cat ", "C%");

96 Konfiguracja i poprawne stosowanie nazwane Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL nazwane umożliwiają zgrupowanie definicji wszystkich zapytań w jednym miejscu. umożliwia definiowanie zapytań nazwanych w plikach XML z mapowaniem lub przy pomocy annotacji w klasie obiektu. 1 /* Tworzenie obiektu Query z zapytania nazwanego */ 2 Query q = session. getnamedquery (" findallbooksbycategory ") 3. setstring (" cat ", "C%");

97 Konfiguracja i poprawne stosowanie nazwane Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL nazwane umożliwiają zgrupowanie definicji wszystkich zapytań w jednym miejscu. umożliwia definiowanie zapytań nazwanych w plikach XML z mapowaniem lub przy pomocy annotacji w klasie obiektu. 1 /* Tworzenie obiektu Query z zapytania nazwanego */ 2 Query q = session. getnamedquery (" findallbooksbycategory ") 3. setstring (" cat ", "C%");

98 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Definicja zapytania nazwanego w pliku XML 1 <! -- HQL lub JPA QL --> 2 <query name =" findallbooksbycategory " ><![ CDATA [ 3 from Book b where b. category. name like :cat 4 ]] ></ query > 1 <! -- natywny SQL --> 2 <sql - query name =" findallbooksbycategory " > 3 < return alias ="b" class =" Book "/><![ CDATA [ 4 select { b.*} from BOOKS b 5 join CATEGORIES c on c. CATEGORY_ID = b. CATEGORY_ID 6 where c. name like :cat 7 ]] > 8 </sql - query >

99 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Definicja zapytania nazwanego w pliku XML 1 <! -- HQL lub JPA QL --> 2 <query name =" findallbooksbycategory " ><![ CDATA [ 3 from Book b where b. category. name like :cat 4 ]] ></ query > 1 <! -- natywny SQL --> 2 <sql - query name =" findallbooksbycategory " > 3 < return alias ="b" class =" Book "/><![ CDATA [ 4 select { b.*} from BOOKS b 5 join CATEGORIES c on c. CATEGORY_ID = b. CATEGORY_ID 6 where c. name like :cat 7 ]] > 8 </sql - query >

100 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Definicja zapytania nazwanego przy pomocy Annotacji 1 package hello ; 2 3 import...; 4 ({ ( 7 name = " findallbooksbycategory ", 8 query = 9 " select b from Book b where b. category. name like : cat " 10 ), }) ( name = " BOOKS ") 15 public class book {... }

101 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Wstęp do Query by Criteria oraz Query by Example API specyficzne dla a. Polecane do konstrukcji skomplikowanych zapytań. Umożliwiają budowę zapytań poprzez tworzenie i łączenie obiektów. HQL łatwiej dostosować do specyfiki zapytania.

102 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Wstęp do Query by Criteria oraz Query by Example API specyficzne dla a. Polecane do konstrukcji skomplikowanych zapytań. Umożliwiają budowę zapytań poprzez tworzenie i łączenie obiektów. HQL łatwiej dostosować do specyfiki zapytania.

103 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Wstęp do Query by Criteria oraz Query by Example API specyficzne dla a. Polecane do konstrukcji skomplikowanych zapytań. Umożliwiają budowę zapytań poprzez tworzenie i łączenie obiektów. HQL łatwiej dostosować do specyfiki zapytania.

104 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Wstęp do Query by Criteria oraz Query by Example API specyficzne dla a. Polecane do konstrukcji skomplikowanych zapytań. Umożliwiają budowę zapytań poprzez tworzenie i łączenie obiektów. HQL łatwiej dostosować do specyfiki zapytania.

105 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie zapytań w Query by Criteria 1 /* Najprostrze zapytanie wybierające wszystkie 2 obiekty z danej klasy. */ 3 session. createcriteria ( Category. class ); 1 /* Query by Criteria także obsługuje 2 polimorficzne zapytania. */ 3 session. createcriteria ( java. lang. Object. class ) 1 /* Nie jest wymagana otwarta sesja do stworzenia 2 zapytania. */ 3 DetachedCriteria crit = DetachedCriteria 4. forclass ( Book. class ) 5. addorder ( Order. asc (" title " )); 6 7 List items = crit. getexecutablecriteria ( session ). list ();

106 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie zapytań w Query by Criteria 1 /* Najprostrze zapytanie wybierające wszystkie 2 obiekty z danej klasy. */ 3 session. createcriteria ( Category. class ); 1 /* Query by Criteria także obsługuje 2 polimorficzne zapytania. */ 3 session. createcriteria ( java. lang. Object. class ) 1 /* Nie jest wymagana otwarta sesja do stworzenia 2 zapytania. */ 3 DetachedCriteria crit = DetachedCriteria 4. forclass ( Book. class ) 5. addorder ( Order. asc (" title " )); 6 7 List items = crit. getexecutablecriteria ( session ). list ();

107 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie zapytań w Query by Criteria 1 /* Najprostrze zapytanie wybierające wszystkie 2 obiekty z danej klasy. */ 3 session. createcriteria ( Category. class ); 1 /* Query by Criteria także obsługuje 2 polimorficzne zapytania. */ 3 session. createcriteria ( java. lang. Object. class ) 1 /* Nie jest wymagana otwarta sesja do stworzenia 2 zapytania. */ 3 DetachedCriteria crit = DetachedCriteria 4. forclass ( Book. class ) 5. addorder ( Order. asc (" title " )); 6 7 List items = crit. getexecutablecriteria ( session ). list ();

108 Konfiguracja i poprawne stosowanie Definicja ograniczeń Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Ograniczenia definiujemy przy pomocy obiektów Criterion. Klasa Restrictions dostarcza wiele wbudowanych typów obiektów Criterion. 1 /* Wybór książki o podanym tytule. */ 2 Criterion titleeq = 3 Restrictions.eq(" title ", " Wicket in Action "); 4 Criteria criteria = session. createcriteria ( Book. class ); 5 criteria. add ( titleeq ); 6 List items = criteria. list (); 1 /* Inny przykład. */ 2 String [] titles = {" Pro Wicket ", " 3"}; 3 session. createcriteria ( Book. class ) 4. add ( Restrictions.in(" title ", titles ));

109 Konfiguracja i poprawne stosowanie Definicja ograniczeń Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Ograniczenia definiujemy przy pomocy obiektów Criterion. Klasa Restrictions dostarcza wiele wbudowanych typów obiektów Criterion. 1 /* Wybór książki o podanym tytule. */ 2 Criterion titleeq = 3 Restrictions.eq(" title ", " Wicket in Action "); 4 Criteria criteria = session. createcriteria ( Book. class ); 5 criteria. add ( titleeq ); 6 List items = criteria. list (); 1 /* Inny przykład. */ 2 String [] titles = {" Pro Wicket ", " 3"}; 3 session. createcriteria ( Book. class ) 4. add ( Restrictions.in(" title ", titles ));

110 Konfiguracja i poprawne stosowanie Definicja ograniczeń Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Ograniczenia definiujemy przy pomocy obiektów Criterion. Klasa Restrictions dostarcza wiele wbudowanych typów obiektów Criterion. 1 /* Wybór książki o podanym tytule. */ 2 Criterion titleeq = 3 Restrictions.eq(" title ", " Wicket in Action "); 4 Criteria criteria = session. createcriteria ( Book. class ); 5 criteria. add ( titleeq ); 6 List items = criteria. list (); 1 /* Inny przykład. */ 2 String [] titles = {" Pro Wicket ", " 3"}; 3 session. createcriteria ( Book. class ) 4. add ( Restrictions.in(" title ", titles ));

111 Konfiguracja i poprawne stosowanie Definicja ograniczeń Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Ograniczenia definiujemy przy pomocy obiektów Criterion. Klasa Restrictions dostarcza wiele wbudowanych typów obiektów Criterion. 1 /* Wybór książki o podanym tytule. */ 2 Criterion titleeq = 3 Restrictions.eq(" title ", " Wicket in Action "); 4 Criteria criteria = session. createcriteria ( Book. class ); 5 criteria. add ( titleeq ); 6 List items = criteria. list (); 1 /* Inny przykład. */ 2 String [] titles = {" Pro Wicket ", " 3"}; 3 session. createcriteria ( Book. class ) 4. add ( Restrictions.in(" title ", titles ));

112 Konfiguracja i poprawne stosowanie Query by Example Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL QbE jest częścią Criteria API. Dostarczamy instancję obiektu, która ma uzupełnione pewne atrybuty. Zapytanie zwróci wszystkie takie obiekty, które mają analogicznie uzupełnione dane. 1 /* Przykład. */ 2 public List findbooksbyexample ( Book b) { 3 Example ebook = 4 Example 5. create (b) 6. ignorecase () 7. excludeproperty (" description "); 8 9 return getsession (). createcriteria ( Book. class ) 10. add ( ebook ). list (); 11 }

113 Konfiguracja i poprawne stosowanie Query by Example Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL QbE jest częścią Criteria API. Dostarczamy instancję obiektu, która ma uzupełnione pewne atrybuty. Zapytanie zwróci wszystkie takie obiekty, które mają analogicznie uzupełnione dane. 1 /* Przykład. */ 2 public List findbooksbyexample ( Book b) { 3 Example ebook = 4 Example 5. create (b) 6. ignorecase () 7. excludeproperty (" description "); 8 9 return getsession (). createcriteria ( Book. class ) 10. add ( ebook ). list (); 11 }

114 Konfiguracja i poprawne stosowanie Natywne zapytania SQL Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL umożliwia nam korzystanie z natywnego SQL a. 1 /* Wszystkie itemy sprzedawane przez danego użytkownika. */ 2 List items = session. createsqlquery ( 3 " select {b.*} from BOOKS b" 4 +" join CATEGORIES c on c. CATEGORY_ID = b. CATEGORY_ID " 5 +" where c. NAME = : cat ") 6. addentity ("b", Book. class ) 7. setstring (" cat ", " Computer books ") 8. list ();

115 Konfiguracja i poprawne stosowanie Natywne zapytania SQL Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL umożliwia nam korzystanie z natywnego SQL a. 1 /* Wszystkie itemy sprzedawane przez danego użytkownika. */ 2 List items = session. createsqlquery ( 3 " select {b.*} from BOOKS b" 4 +" join CATEGORIES c on c. CATEGORY_ID = b. CATEGORY_ID " 5 +" where c. NAME = : cat ") 6. addentity ("b", Book. class ) 7. setstring (" cat ", " Computer books ") 8. list ();

116 Konfiguracja i poprawne stosowanie Typy użytkownika Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL jest w stanie zgadnąć typ obiektu zwracanego, gdy jest to typ wbudowany, w przeciwnym przypadku w definicji zapytania uwzględniamy klasę obiektu, który ma zostać zwrócony. 1 Properties param = new Properties (); 2 param. put (" enumclassname ", " hello. Rating "); 3 4 session. createsqlquery ( 5 " select b. RATING as rating " 6 + " from BOOKS b" 7 + " where b. TITLE = : tit ") 8. addscalar (" rating ", 9. custom ( StringEnumUserType. class, param )) 10. setparameter (" tit ", " Wicket in Action ") 11. list ();

117 Konfiguracja i poprawne stosowanie Typy użytkownika Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL jest w stanie zgadnąć typ obiektu zwracanego, gdy jest to typ wbudowany, w przeciwnym przypadku w definicji zapytania uwzględniamy klasę obiektu, który ma zostać zwrócony. 1 Properties param = new Properties (); 2 param. put (" enumclassname ", " hello. Rating "); 3 4 session. createsqlquery ( 5 " select b. RATING as rating " 6 + " from BOOKS b" 7 + " where b. TITLE = : tit ") 8. addscalar (" rating ", 9. custom ( StringEnumUserType. class, param )) 10. setparameter (" tit ", " Wicket in Action ") 11. list ();

118 Konfiguracja i poprawne stosowanie Bibliografia jest jednym z najlepszych narzędzi wspierających ORM. Posiada bardzo rozbudowaną funkcjonalność, dzięki której możemy rozwiązać niemal wszystkie problemy związane z problemem persystencji danych w naszej aplikacji. Do największych zalet możemy zaliczyć: Proste mapowanie nawet zaawansowanych modeli obiektowych Uniezależnienie się od systemu zarządzania bazą danych Rozbudowany mechanizm tworzenia zapytań Możliwość automatycznej generacji schematu bazy danych Mechanizmy zwiększające efektywność - m.in. rozbudowany cache jest implementacją standardu JPA

119 Konfiguracja i poprawne stosowanie Bibliografia jest jednym z najlepszych narzędzi wspierających ORM. Posiada bardzo rozbudowaną funkcjonalność, dzięki której możemy rozwiązać niemal wszystkie problemy związane z problemem persystencji danych w naszej aplikacji. Do największych zalet możemy zaliczyć: Proste mapowanie nawet zaawansowanych modeli obiektowych Uniezależnienie się od systemu zarządzania bazą danych Rozbudowany mechanizm tworzenia zapytań Możliwość automatycznej generacji schematu bazy danych Mechanizmy zwiększające efektywność - m.in. rozbudowany cache jest implementacją standardu JPA

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

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

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

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

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

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

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

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

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

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

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

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

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

Kurs programowania aplikacji bazodanowych

Kurs programowania aplikacji bazodanowych Wykład 6 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu CastleProject i wzorzec ActiveRecord Wybrane możliwości Castle ActiveRecord Inicjalizja i konfiguracja Tworzenie klasy encji, dziedziczenie

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

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

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

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

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

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

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

Relacje. 1. Modelowanie relacji. - siedem rodzajów relacji J2EE. - relacje jedno i wielokierunkowe, - relacje reprezentowane przez kolekcje.

Relacje. 1. Modelowanie relacji. - siedem rodzajów relacji J2EE. - relacje jedno i wielokierunkowe, - relacje reprezentowane przez kolekcje. Relacje 1. Modelowanie relacji. - siedem rodzajów relacji J2EE. - relacje jedno i wielokierunkowe, - relacje reprezentowane przez kolekcje. 1 Relacje Modelowanie pojęć biznesowych wymaga łączenia komponentów

Bardziej szczegółowo

Relacje. 1. Modelowanie relacji. - siedem rodzajów relacji J2EE. - relacje jedno i wielokierunkowe, - relacje reprezentowane przez kolekcje.

Relacje. 1. Modelowanie relacji. - siedem rodzajów relacji J2EE. - relacje jedno i wielokierunkowe, - relacje reprezentowane przez kolekcje. 1 Relacje 1. Modelowanie relacji. - siedem rodzajów relacji J2EE. - relacje jedno i wielokierunkowe, - relacje reprezentowane przez kolekcje. 2 Relacje Modelowanie pojęć biznesowych wymaga łączenia komponentów

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

METODY PROGRAMOWANIA

METODY PROGRAMOWANIA METODY PROGRAMOWANIA Wzorzec Repository 21 października 2017 Krzysztof Pawłowski kpawlowski@pjwstk.edu.pl Każdy wzorzec opisuje problem, który ciągle pojawia się w naszej dziedzinie, a następnie określa

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

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

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski DMX DMX DMX Data Mining Extensions jest językiem do tworzenia i działania na modelach eksploracji danych w Microsoft SQL Server Analysis Services SSAS. Za pomocą DMX można tworzyć strukturę nowych modeli

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

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

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

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko

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

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

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

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

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

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012: Systemy baz danych 16.04.2013 1. Plan: 10. Implementacja Bazy Danych - diagram fizyczny 11. Implementacja Bazy Danych - implementacja 2. Zadania: 1. Przygotować model fizyczny dla wybranego projektu bazy

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

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

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

Encje w Drupalu. Tworzenie własnych encji i ich wpływ na poprawę wydajności

Encje w Drupalu. Tworzenie własnych encji i ich wpływ na poprawę wydajności Encje w Drupalu Tworzenie własnych encji i ich wpływ na poprawę wydajności DrupalCamp Wrocław 2015 Grzegorz Bartman https://twitter.com/grzegorzbartman O mnie Grzegorz Bartman http://twitter.com/grzegorzbartman

Bardziej szczegółowo

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE) Programowanie w języku Java Wykład 13: Java Platform, Enterprise Edition (Java EE) Standard J2EE Programowanie w języku Java 2 J2EE - komunikacja Programowanie w języku Java 3 J2EE warstwa biznesowa Programowanie

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

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

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

22 października Akademia Górniczo-Hutnicza, Automatyka i Robotyka. Porównanie LINQ i NHibernate. Mateusz Mazur Ale o co chodzi?

22 października Akademia Górniczo-Hutnicza, Automatyka i Robotyka. Porównanie LINQ i NHibernate. Mateusz Mazur Ale o co chodzi? Mazur (m-a-t-i@o2.pl) 22 października 2008 Akademia Górniczo-Hutnicza, Automatyka i Robotyka Plan Wyjaśnienie tematyki Przykład wprowadzający Wyjaśnienie pojęć wydajnościowe, funkcjonalne Praktyczne przedstawienie

Bardziej szczegółowo

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret Ogólny plan przedmiotu BAZY DANYCH Wykład 1: Wprowadzenie do baz danych Małgorzata Krętowska Politechnika Białostocka Wydział Informatyki Wykład : Wprowadzenie do baz danych Normalizacja Diagramy związków

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

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

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop. 2016 Spis treści O autorach 11 Podziękowania 12 Część I Wprowadzenie do języka SQL 13 Godzina 1. Witamy w świecie języka SQL 15

Bardziej szczegółowo

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

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

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

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

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

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić

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

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

Tworzenie raportów XML Publisher przy użyciu Data Templates

Tworzenie raportów XML Publisher przy użyciu Data Templates Tworzenie raportów XML Publisher przy użyciu Data Templates Wykorzystanie Szablonów Danych (ang. Data templates) jest to jedna z metod tworzenia raportów w technologii XML Publisher bez użycia narzędzia

Bardziej szczegółowo

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy.

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. Zanim ktokolwiek postanowi użyd tego w swoim projekcie, należy zaznaczyd

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

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

Indeksowanie w bazach danych

Indeksowanie w bazach danych w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy

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

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

Agenda. Grzegorz Wilaszek, Wojciech Krzystek

Agenda. Grzegorz Wilaszek, Wojciech Krzystek Agenda PostgreSQL Standard J2EE: JPA co to jest przegląd możliwości mapowanie hierarchii metody definiowania kwerend Natywny SQL zapytania nazwane JPQL Criteria API Hibernate Spring Data Przykład Grzegorz

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

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

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

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

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

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

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

Bardziej szczegółowo

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1 Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane

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

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

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

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

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

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z możliwości utworzenia struktury bazy danych z

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