Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Konfiguracja HIBERnate, postgresQL + przykładowa aplikacja

Podobne prezentacje


Prezentacja na temat: "Konfiguracja HIBERnate, postgresQL + przykładowa aplikacja"— Zapis prezentacji:

1 Konfiguracja HIBERnate, postgresQL + przykładowa aplikacja
Instalacja Konfiguracja HIBERnate, postgresQL + przykładowa aplikacja

2 Tutorial ten będzie przeprowadzony w środowisku Windows
Użyte IDE - IntelliJ

3 Wymagania wstępne Zainstalowany JDK

4 PostgreSQL Pobieramy PostgresSQL dla Windows
Link zawiera również PgAdmin – graficzny interfejs dla PostgreSQL

5 Instalujemy ściągnięte oprogramowanie

6 Wybieramy lokalizację

7 Wybieramy lokalizację, gdzie będziemy składować dane

8 Tworzymy hasło dla superuser’a – postgres (będzie potrzebne przy konfiguracji Hibernate’a). W naszym przypadku hasło zostanie ustalone na „postgres”

9 Wybieramy numer portu na którym będzie nasłuchiwał serwer
Wybieramy numer portu na którym będzie nasłuchiwał serwer. W naszym przypadku 5432 (również będzie to potrzebne przy konfiguracji Hibernate)

10 Wybieramy domyślną lokalizację

11 Klikamy dwa razy Next i instalujemy PostgreSQL

12 Po zakończeniu instalacji, możemy przejść do PgAdminIII, który został również zainstalowany – graficzny interfejs

13 Klikamy dwukrotnie na (localhost:5432)
Klikamy dwukrotnie na (localhost:5432). Podajemy hasło, które wprowadziliśmy podczas instalacji. W naszym przypadku: postgres

14 Tworzymy nową bazę danych

15 Nadajemy jej nazwę i OK

16 Mamy założoną bazę danych. Jest na razie pusta.

17 Aplikacja w Javie Kolejnym krokiem będzie stworzenie aplikacji w Javie, używającej Hibernate. Należy poprawnie skonfigurować Hibernate – jak na kolejnych slajdach Projekt zostanie utworzony w IntelliJ IDE

18 Tworzmy nowy projekt – Java Module

19 Mamy utworzony pusty projekt

20 Jak widać stworzyliśmy dwa moduły:
Stwórzmy strukturę plików jak niżej. Na razie wszystkie pliki są puste. Zawartość uzupełnimy później Jak widać stworzyliśmy dwa moduły: Application – w którym będzie logika naszej aplikacji Persistance – w której zamodelujemy klasy, które będą persystowane (Message, Thread) Do budowy oraz do pobrania niezbędnych bibliotek będziemy używać Maven’a, stąd też stworzone pliki pom.xml (po jednym dla każdego z modułów oraz jeden nadrzędny). Na kolejnych slajdach zaprezentujemy ich zawartość

21 Moduł application – pom.xml
Dependency: Postgresql – driver JDBC Dom4j – hibernate-core go używa Pl.agh.hibernate.tutorial: persistance – moduł persystencji zawierający modelowane klasy

22 Moduł persistance – pom.xml
Dependency: Hibernate-core – główna biblioteka hibernate, odpowiadająca za mapowanie O/R Hibernate-annotations – pozwala na mapowanie poprzez tagowanie Hibernate-validator – dodaje możliwość dodawania tagów constraintowych do pól persystowanej klasy Hibernate-entitymanager - Połączenie podprojektówHibernate EntityManager oraz Hibernate Annotations pozwala posługiwać się techniką mapowania obiektowo-relacyjnego zgodnie ze standardem JPA Hibernate-jpa

23 Moduł nadrzędny – pom.xml
Zaznaczamy obecność ‚pomów’ podrzędnych

24 Wystarczy teraz przy użyciu Mavena pobrać wszystkie zadeklarowane dependency, aby mieć dostęp do potrzebnego API

25 Klasy modelowe Message Thread

26 Message W naszym rozwiązaniu będziemy korzystać z możliwości mapowania klas tagami, zamiast tworzenia plików hbm.xml (o nich później) Każda klasa POJO jest tzw. entity i jest deklarowana przy (na poziomie klasy) @Table pozwala zmapować naszą klasę na tabelę w bazie danych. Możemy ustawić 4 atrybuty: nazwę tabeli, jej katalog, schemat oraz możemy ustawić UNIQUE constarints dla poszczególnych kolumn

27 Message @Table pozwala zmapować naszą klasę na tabelę w bazie danych. Możemy ustawić 4 atrybuty: Name - nazwę tabeli Catalogue - jej katalog, Schema - schemat UniqueConstraint - umożliwia ustawienie UNIQUE constarints dla poszczególnych kolumn W naszym przypadku, ustawiamy tylko nazwę tabeli

28 Message @Id deklaruje identyfikator entity, primary key
Istnieje możliwość wskazania pól, które mają zostać wygenerowane automatycznie. Może się to przydać na przykład w przypadku primary key. W tym celu JPA definiuje 5 typów strategii generowania: AUTO TABLE IDENTITY SEQUENCE Identity copy Hibernate proponuje więcej niż JPA (patrz dok.)

29 Message @Column – określa kolumnę, która będzie zmapowana z pola nad którym znajduje się adnotacja. Możliwe jest ustawienie atrybutów: Name – nazwa Unique – UNIQUE contsraint, domyślnie false Nullable – czy kolumna może zawierać null Insertable – czy kolumna może być częścią INSERTa Updatable – czy kolumna może być częścią UPDATEa columnDefinition – nadpisuje sql DDL fragment Table – docelowa tabela Length – długość kolumny (domyślnie 255) Precision – precyzja dziesiętna Scale

30 Mapowanie relacji – pojawia się potrzeba mapowania relacji
Mapowanie relacji – pojawia się potrzeba mapowania relacji. Z pomocą przychodzą adnotacje: One-to-one – jeden do jednego. Mamy trzy sytuacje: Dwa entity dzielą primary key (feorign key jest przechowywany przez jeden z nich).

31 One-to-one – jeden do jednego. Mamy trzy sytuacje:
Dwa entity dzielą primary key (feorign key jest przechowywany przez jeden z nich). Połączenie dwóch entity jawną kolumną foreign key Asocjacje mogą być dwustronne. Wtedy jedna ze stron musi być właścicielem. Właściciel jest odpowiedzialny za update kolumny. Aby oznaczyć kolumnę jako nie właściciel używamy mappedBy. Nie jest to w tym przykładzie potrzebne, bo już ustawiliśmy po stronie właściciela @JoinColumn

32 One-to-one – jeden do jednego. Mamy trzy sytuacje:
Dwa entity dzielą primary key (foreign key jest przechowywany przez jeden z nich). Połączenie dwóch entity jawną kolumną foreign key Z użyciem tabeli łącznikowej Tworzymy tutaj tabelę łącznikową CustomerPassports, która używa primary key customer’a i passport

33 Many-to-one - wiele do jednego.
Domyślna nazwa kolumny – thread_id Istnieje możliwość określenia ręcznie nazwa Możemy też zrealizować taką relację przy użyciu tabeli łącznikowej


Pobierz ppt "Konfiguracja HIBERnate, postgresQL + przykładowa aplikacja"

Podobne prezentacje


Reklamy Google