Karolina Rusin, Paweł Biczysko, Michał Olejnik. 11 maja 2009
|
|
- Jadwiga Kozieł
- 8 lat temu
- Przeglądów:
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
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ółowoProgramowanie 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ółowoMapowanie 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ółowoBazy 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ółowoWprowadzenie 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ółowoNHibernate 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ółowoPodejś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ółowoGdzie 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ółowoProjektowanie 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ółowoAutomatyczne 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ółowoJAVA 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ółowoJPA 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ółowoWprowadzenie 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ółowoKurs 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ółowoProgramowanie 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ółowoWprowadzenie 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ółowoInformacje 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoNowy 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ółowoMetody 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ółowoRelacje. 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ółowoRelacje. 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ółowoJava 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ółowoHibernate 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ółowoProjektowanie 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ółowoNHibernate. 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ółowoMetody 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ółowoPodstawy 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ółowoE:\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ółowoJava 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ółowoSerwery 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ółowoEJB 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ółowoWzorce 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ółowoHibernate. 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ółowoTworzenie 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ółowoORM 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ółowoProjektowanie 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ółowoMETODY 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ółowoSystemy 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ółowoZasady 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ółowoDMX 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ółowoBaza 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ółowoWprowadzenie 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ółowoJAVA 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ółowoAplikacja 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ółowoPodstawowe 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ółowoWdroż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ółowoSystemy 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ółowoPaweł 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ółowoSystemy 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ółowoDb4o 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ółowoProjektowanie 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ółowoEnterprise 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ółowoEncje 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ółowoProgramowanie 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ółowoProjektowanie 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ółowoZaawansowane 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ółowoPodstawy 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ółowoProgramowanie 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ółowo22 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ółowoOgó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ółowoP 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ółowoZaawansowane 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ółowoSQL 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ółowoProjektowanie 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ółowoWarstwa 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ółowoKurs 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ółowoBazy 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ółowoRelacyjne 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ółowoBazy 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ółowoProgramowanie 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ółowoPost-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ółowoTworzenie 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ółowoLINQ 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ółowoPodstawowe 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ółowoBlaski 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ółowoIndeksowanie 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ółowoOracle 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ółowoJę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ółowoAgenda. 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ółowoProjekt 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ółowoProjektowanie 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ółowoREFERAT 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ółowoLaboratorium 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ółowo77. 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ółowoWprowadzenie 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ółowoInstrukcja 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ółowo1 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ółowoPrzykł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ółowoTworzenie 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ółowoBEAN 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ółowoakademia 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ółowoPRZESTRZENNE 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ółowoPodstawowe 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ółowoRelacyjne 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ółowoProgramowanie 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ółowoBaza 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ółowoObiektowość 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