Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tworzenie aplikacji z użyciem biblioteki Hibernate

1,271 views

Published on

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.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Tworzenie aplikacji z użyciem biblioteki Hibernate

  1. 1. Tworzenie aplikacji z użyciem biblioteki Hibernate Materiały pochodzą ze strony: www.devcastzone.comcopyright BNS MEDIA www.devcastzone.com
  2. 2. Tworzenie aplikacji z użyciem biblioteki Hibernate Tworzenie klas encji i plików powiązaocopyright BNS MEDIA www.devcastzone.com
  3. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 3
  4. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 4
  5. 5. Konwencja JavaBean • Klasa musi zawierad publiczny konstruktor bezparametryczny • Pola klasy powinny byd prywatne Tworzenie aplikacji z użyciem biblioteki Hibernatecopyright BNS MEDIA www.devcastzone.com 5
  6. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 6
  7. 7. Konwencja JavaBean • Nazewnictwo akcesorów: • Pobieranie – getXXX() lub isXXX() (dla typu boolean) • Ustawianie – setXXX(Typ nowaWartosc) Tworzenie aplikacji z użyciem biblioteki Hibernatecopyright BNS MEDIA www.devcastzone.com 7
  8. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 8
  9. 9. Główny plik konfiguracyjny • Wskazuje na plik XML mapowao pomiędzy relacjami a klasami encji Tworzenie aplikacji z użyciem biblioteki Hibernatecopyright BNS MEDIA www.devcastzone.com 9
  10. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 10
  11. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 11
  12. 12. Przykład <class name="encje.Klient" table="klient"> <id name="id" column="id"> <generator class="increment"/> </id> <property name="imie" column="imie" /> <property name="nazwisko" column="nazwisko" /> </class> Tworzenie aplikacji z użyciem biblioteki Hibernatecopyright BNS MEDIA www.devcastzone.com 12
  13. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 13
  14. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 14
  15. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 15
  16. 16. Tworzenie aplikacji z użyciem biblioteki Hibernate Zaawansowane aspekty tworzenia plików powiązaocopyright BNS MEDIA www.devcastzone.com
  17. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 17
  18. 18. Atrybuty kolumn w plikach powiązao • name • length • not-null • unique • sql-type • default Tworzenie aplikacji z użyciem biblioteki Hibernatecopyright BNS MEDIA www.devcastzone.com 18
  19. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 19
  20. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 20
  21. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 21
  22. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 22
  23. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 23
  24. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 24
  25. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 25
  26. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 26
  27. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 27
  28. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 28
  29. 29. Dziedziczenie • Podejście nr 1: • Wszystkie podklasy w jednej tabeli Tworzenie aplikacji z użyciem biblioteki Hibernatecopyright BNS MEDIA www.devcastzone.com 29
  30. 30. Dziedziczenie • Podejście nr 2: • Podklasy w tabelach złączanych przy użyciu klucza głównego Tworzenie aplikacji z użyciem biblioteki Hibernatecopyright BNS MEDIA www.devcastzone.com 30
  31. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 31
  32. 32. Tworzenie aplikacji z użyciem bibliotekiHibernate – 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 32
  33. 33. Tworzenie aplikacji z użyciem bibliotekiHibernate – 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 33
  34. 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 Hibernatecopyright BNS MEDIA www.devcastzone.com 34

×