Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałAnatol Sosnowski Został zmieniony 9 lat temu
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.