Konfiguracja HIBERnate, postgresQL + przykładowa aplikacja

Slides:



Advertisements
Podobne prezentacje
Projektowanie bazy danych
Advertisements

Interfejs użytkownika do zarządzania konfiguracją oprogramowania
KORESPONDENCJA SERYJNA
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
WPROWADZENIE DO BAZ DANYCH
Marcin Pamuła Mateusz Stefek
MS Access 2003 Kwerendy Paweł Górczyński.
MS Access 2000 Kwerendy Piotr Górczyński 25/08/2001.
MS Access 2000 Raporty Piotr Górczyński 16/12/2003.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
MS Access 2000 Tworzenie tabel Piotr Górczyński 2005.
MS Access 2000 Tworzenie bazy danych Piotr Górczyński 2005.
Hibernate Klasy trwałe
Programowanie wizualne PW – LAB5 Wojciech Pieprzyca.
Odwzorowania relacyjno-obiektowe Hibernate Klasy trwałe.
Hibernate relacje.
Hibernate uzupełnienie
Język SQL (Structured Query Language) DDL (Data Definition Language)
USŁUGA FTP 1. Definicja FTP. FTP (File Transfer Protocol, ang. protokół transmisji plików) jest protokołem typu klient-serwer, który umożliwia przesyłanie.
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Jak instalować programy? Opracowała Alicja Lasota kl. Ib 2012/2013r.
Janusz ROŻEJ GENERATORY APLIKACJI Generatory aplikacji Janusz ROŻEJ
Seminarium eduroam – UMK, Tomasz Wolniewicz UCI UMK Tomasz Piontek Uczelniane Centrum Informatyczne UMK Konfiguracja urządzenia dla eduroam.
Prezentacja i szkolenie
System raportowania, ewaluacji oraz badania satysfakcji Klienta.
SQL - Structured Query Language
Korespondencja seryjna
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 3.
Jak zacząć w MS SQL? USE master; GO IF DB_ID (Nbaza') IS NOT NULL DROP DATABASE baza; GO CREATE DATABASE baza; GO USE baza; GO.
WPROWADZENIE DO BAZ DANYCH
oprogramowania drEryk
Platforma analizy wizualnej - VisNow Szkolenie Platforma analizy wizualnej - VisNow Szkolenie 15 maja 2013, Sesja sprawozdawcza KDM Krzysztof S. Nowiński.
Sieć oparta o serwer Ubuntu 12.10
mgr inż. Mariola Stróżyk
Linux w sieci Konfigurowanie interfejsu sieciowego.
Komendy SQL do pracy z tabelami i bazami
Integracja iStore z programem Subiekt GT
Zawansowane techniki programistyczne
Kalkulator Wyborczy. Okno startowe Kalkulator w pierwszej kolejności weryfikuje, czy posiada ważne licencje. Jeżeli posiada więcej niż jedną licencję,
Projektowanie bazy danych
Systemy Baz Danych Wykład III
Konfiguracja VPN Klienta – Windows 7
Marcin nowak, Wojciech baszczyk
Toruń 28/ Metadane SAML opisują, w jaki sposób ma być realizowana komunikacja pomiędzy IdP i SP Metadane są typowo prezentowane w postaci XML.
Autor: Damian Urbańczyk
Entity Framework worth it or not?
Konfiguracja VPN Serwera – Windows 7
Jak wykonać prosty licznik odwiedzin strony internetowej?
Komendy SQL do pracy z danymi
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Sposoby zdalnego sterowania pulpitem
Hibernate Podstawy.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
.NET i Bazy Danych Projekt: Wadim Grasza.
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
Współpraca PHP i MySQL Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z danych zapisanych na serwerze jest współpraca z relacyjna.
Korespondencja seryjna jest funkcją, która umożliwia nam stworzenie dokumentu, który zawiera ten sam typ informacji, lecz dla każdego adresata zawiera.
Szablony w programie microsoft word 2010
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Prototypowanie w ORACLE DESIGNER Transformacja Modelu danych.
Oracle Data Modeler (4.1). Aplikacja Wymagania biznesowe Tworzenie systemu informacyjnego Procesy Informacje Analiza Projektowanie Browser: Hollywood.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Moduł ECDL-AM5 Bazy danych, poziom zaawansowany Tabele, relacje.
Temat: Tworzenie bazy danych
Instalacja klucza HASP.
Menu Opcje.
PODSTAWOWE ZARZĄDZANIE KOMPUTERAMI Z SYSTEMEM WINDOWS
Wskaż wybrany krok lub kliknij Enter aby dowiedzieć się więcej.
Zapis prezentacji:

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

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

Wymagania wstępne Zainstalowany JDK

PostgreSQL Pobieramy PostgresSQL dla Windows http://www.enterprisedb.com/products-services-training/pgdownload Link zawiera również PgAdmin – graficzny interfejs dla PostgreSQL

Instalujemy ściągnięte oprogramowanie

Wybieramy lokalizację

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

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

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)

Wybieramy domyślną lokalizację

Klikamy dwa razy Next i instalujemy PostgreSQL

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

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

Tworzymy nową bazę danych

Nadajemy jej nazwę i OK

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

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

Tworzmy nowy projekt – Java Module

Mamy utworzony pusty projekt

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ść

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

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

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

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

Klasy modelowe Message Thread

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 użyciu @Entity (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

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

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 używamy @GeneratedValue(strategy=…) JPA definiuje 5 typów strategii generowania: AUTO TABLE IDENTITY SEQUENCE Identity copy Hibernate proponuje więcej niż JPA (patrz dok.)

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

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). Używamy @PrimaryKeyJoinColumn

One-to-one – jeden do jednego. Mamy trzy sytuacje: Dwa entity dzielą primary key (feorign key jest przechowywany przez jeden z nich). Używamy @PrimaryKeyJoinColumn 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

One-to-one – jeden do jednego. Mamy trzy sytuacje: Dwa entity dzielą primary key (foreign key jest przechowywany przez jeden z nich). Używamy @PrimaryKeyJoinColumn 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

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