http://www.devcastzone.com/course,tworzenie-aplikacji-z-uzyciem-biblioteki-hibernate
Devcast "Tworzenie aplikacji z użyciem biblioteki Hibernate" jest przeznaczony dla osób, które chciałyby poznać jeden z najpopularniejszych i najbardziej funkcjonalnych mapperów obiektowo-relacyjnych, dostępny w Javie i będący inspiracją dla wielu innych ORM. Devcast zaczyna się od omówienia podstawowych zasad korzystania z Hibernate i niezbędnych aspektów konfiguracji, przez zasady wiązania ze sobą klas języka Java z tabeli relacyjnych baz danych, aż po możliwość zastosowania Hibernate jako implementację standardu JPA. W devcaście są poruszone także takie zagadnienia, jak język Hibernate Query Language, transakcje bazodanowe, czy rozszerzenia rdzenia Hibernate.
Tworzenie aplikacji z użyciem biblioteki Hibernate
1. Tworzenie aplikacji z użyciem
biblioteki Hibernate
Materiały pochodzą ze strony:
www.devcastzone.com
copyright BNS MEDIA
www.devcastzone.com
2. Tworzenie aplikacji z użyciem
biblioteki Hibernate
Tworzenie klas encji i plików powiązao
copyright BNS MEDIA
www.devcastzone.com
3. Treśd modułu
1. Struktura klas encji
2. Konwencja JavaBean
3. Główny plik konfiguracyjny
4. Plik powiązao XML
5. Schemat nawiązywania połączenia w Hibernate
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 3
4. Struktura klas encji
• Klasy encji są tradycyjnymi klasami POJO – Plain Old
Java Object
• Klasy te powinny spełniad założenia konwencji
JavaBean
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 4
5. Konwencja JavaBean
• Klasa musi zawierad publiczny konstruktor
bezparametryczny
• Pola klasy powinny byd prywatne
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 5
6. Konwencja JavaBean
• Pola klasy powinny byd dostępne za pomocą tzw.
akcesorów
• Akcesory (metody dostępu) umożliwiają pobieranie i
ustawianie wartości pól.
• Dzięki zastosowaniu metod możliwe jest dodanie
niezbędnej logiki lub walidacji na poziomie encji
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 6
7. Konwencja JavaBean
• Nazewnictwo akcesorów:
• Pobieranie – getXXX() lub isXXX() (dla typu boolean)
• Ustawianie – setXXX(Typ nowaWartosc)
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 7
8. Główny plik konfiguracyjny
• Domyślnie – hibernate.cfg.xml w głównym katalogu
ze źródłami
• Zawiera ustawienia połączenia z bazą danych, a także
dodatkowe ustawienia Hibernate
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 8
9. Główny plik konfiguracyjny
• Wskazuje na plik XML mapowao pomiędzy relacjami
a klasami encji
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 9
10. Plik powiązao XML
• Wiąże pola klas z konkretnymi kolumnami
• Opisuje związki pomiędzy relacjami (i encjami)
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 10
11. Plik powiązao XML
• Pominięcie powiązao niektórych pól w pliku
spowoduje pominięcie ładowania odpowiednich
wartości z bazy
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 11
13. Schemat nawiązywania połączenia w
Hibernate
• Klasa Configuration wczytuje dane z pliku
konfiguracyjnego
• Interfejs SessionFactory pozwala na utworzenie
obiektu sesji
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 13
14. Schemat nawiązywania połączenia w
Hibernate
• Interfejs Session umożliwia wykonywanie różnych
operacji – przede wszystkim pobierania i modyfikacji
danych
• Wykonywanie zapytao w języku HQL jest możliwe za
pomocą interfejsu Query
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 14
15. Przykład
Configuration conf = new Configuration().configure();
SessionFactory factory = conf.buildSessionFactory();
Session s = factory.openSession();
List l = s.createQuery("SELECT k.imie from Klient k").list();
System.out.println(l.size());
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 15
16. Tworzenie aplikacji z użyciem
biblioteki Hibernate
Zaawansowane aspekty tworzenia plików powiązao
copyright BNS MEDIA
www.devcastzone.com
17. Treśd modułu
1. Atrybuty kolumn w plikach powiązao
2. Rodzaje związków między relacjami
3. Związki w klasach encji
4. Związki w plikach mapowao XML
5. Omówienie najważniejszych związków
6. Dziedziczenie
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 17
18. Atrybuty kolumn w plikach powiązao
• name
• length
• not-null
• unique
• sql-type
• default
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 18
19. Rodzaje związków między relacjami
• 1-1 (one-to-one)
• 1-m (one-to-many)
• m-m (many-to-many)
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 19
20. Związki w klasach encji
• 1-1: jeden klient – jedno zamówienie. W klasie Klient
istnieje pole typu Zamowienie i vice versa
• 1-m: jeden klient – wiele zamówieo. W klasie Klient
istnieje pole typu Set<Zamowienie> lub
List<Zamowienie>, a w klasie Zamowienie – pole
typu Klient
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 20
21. Związki w klasach encji
• m-m: wielu klientów – wiele zamówieo. W klasie
Klient istnieje pole typu Set<Zamowienie> i vice
versa (Set<Klient> w klasie Zamowienie)
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 21
22. Związki w plikach mapowao XML
• Reprezentacja kolekcji encji podrzędnych
(klient.zamowienia), one-to-many:
<set cascade="persist" name="zamowienia" inverse="true">
<key column="id" />
<one-to-many class="encje.Zamowienie" />
</set>
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 22
23. Związki w plikach mapowao XML
• Reprezentacja encji nadrzędnej w klasie encji
podrzędnej (zamowienie.klient), many-to-one:
<many-to-one name="klient" column="klient" not-null="true" />
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 23
24. Omówienie najważniejszych związków
• Jednokierunkowy związek many-to-one przy użyciu
klucza obcego:
<many-to-one name="klient" column="klient" not-null="true" />
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 24
25. Omówienie najważniejszych związków
• Jednokierunkowy związek one-to-one przy użyciu
klucza obcego:
<many-to-one name="klient" unique="true" column="klient" not-
null="true" />
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 25
26. Omówienie najważniejszych związków
• Dwukierunkowy związek one-to-one przy użyciu
klucza obcego
<!-- w klasie Zamowienie -->
<many-to-one name="klient"
column="klient"
unique="true"
not-null="true"/>
<!-- w klasie Klient -->
<one-to-one name="zamowienie" property-ref="klient"/>
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 26
27. Omówienie najważniejszych związków
• Dwukierunkowy związek many-to-many:
<!-- w klasie Zamowienie -->
<set name="klienci" inverse="true" table="klient_zamowienie">
<key column="zamowienie_id"/>
<many-to-many class="encje.Klient" column="klient_id" />
</set>
<!-- w klasie Klient -->
<set name="zamowienia" inverse="true" table="klient_zamowienie">
<key column="klient_id"/>
<many-to-many class="encje.Zamowienie" column="zamowienie_id" />
</set>
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 27
28. Dziedziczenie
• Pojęcie znane z programowania obiektowego
przeniesione na grunt relacji w bazach danych
• Różnice w sposobie przechowywania danych
wymuszają inną reprezentację danych w bazach
danych
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 28
29. Dziedziczenie
• Podejście nr 1:
• Wszystkie podklasy w jednej tabeli
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 29
30. Dziedziczenie
• Podejście nr 2:
• Podklasy w tabelach złączanych przy użyciu klucza
głównego
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 30
31. Dziedziczenie
• Podejście nr 3:
• Każda podklasa dysponuje własną tabelą
(zawierającą także pola nadklasy)
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 31
32. Tworzenie aplikacji z użyciem biblioteki
Hibernate – program pełnego szkolenia
1. Wprowadzenie
o Relacje a obiekty
o ORM – zasady działania
o Hibernate – możliwości
o Hibernate jako składnik aplikacji – niezbędne kroki konfiguracji
2. Tworzenie klas encji i plików powiązao
o Struktura klas encji
o Konwencja JavaBean
o Główny plik konfiguracyjny
o Plik powiązao XML
o Schemat nawiązywania połączenia w Hibernate
3. Zaawansowane aspekty tworzenia plików powiązao
o Atrybuty kolumn w plikach powiązao
o Rodzaje związków między relacjami
o Związki w klasach encji
o Związki w plikach mapowao XML
o Omówienie najważniejszych związków
o Dziedziczenie
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 32
33. Tworzenie aplikacji z użyciem biblioteki
Hibernate – program pełnego szkolenia
4. Język HQL
o Metody wykonywania zapytao HQL
o Zapytania pobierające
o Masowe operacje modyfikowania i usuwania
5. Zastosowanie Hibernate w JPA
o Czym jest JPA?
o Podobieostwa między Hibernate a JPA
o Plik konfiguracyjny
o Adnotacje
6. Rozszerzenia Hibernate Core
o Hibernate Shards
o Hibernate Search
o Hibernate Tools
o Hibernate Validator
o Hibernate Metamodel Generator
o Hibernate OGM
7. Zagadnienia zaawansowane
o Interfejs Criteria
o Transakcje
o Metody equals() i hashCode()
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 33
34. Tworzenie aplikacji z użyciem biblioteki Hibernate
http://www.devcastzone.com/course,tworzenie-aplikacji-z-
uzyciem-biblioteki-hibernate
Zapraszamy
Tworzenie aplikacji z użyciem biblioteki Hibernate
copyright BNS MEDIA
www.devcastzone.com 34