Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Marcin nowak, Wojciech baszczyk

Podobne prezentacje


Prezentacja na temat: "Marcin nowak, Wojciech baszczyk"— Zapis prezentacji:

1 Marcin nowak, Wojciech baszczyk
Hibernate PostgreSQL Marcin nowak, Wojciech baszczyk

2 PostgreSQL Jest to jeden z najpopularniejszych wolnodostępnych systemów zarządzania relacyjnymi bazami danych Działa na wielu systemach operacyjnych Posiada mechanizm Multiversion Concurrency Control jednocześnie zachowując zasady ACID. Zawiera razszeżenia obiektowe - definiowanie nowych typów, czy dziedziczenie typów tablic Zgodność ze standardem SQL pgAdmin

3 PostgreSQL - ograniczenia

4 Instalacja silnika PostgreSQL
W celu instalacji należy pobrać odpowiednią wersję ze strony: Instalacja jest bardzo prosta i intuicyjna – wystarczy zaakceptować licencję, odpowiednią liczbę razy kliknąć „next”, a końcu „finish” Pobrana paczka zawiera serwer bazy PostgreSQL oraz narzędzie do zarządzania bazą – pgAdmin III Tworzenie nowej bazy danych również bardzo intuicyjne

5 pgAdmin III – główne okno

6 pgAdmin III – zapytania SQL

7 Co to jest Hibernate? Framework będący warstwą pośredniczącą pomiędzy bazą danych a aplikacją Główną funkcjonalnością jest mapowanie obiektowo-relacyjne Składa się kilku podprojektów, jak HibernateAnnotations, HibernateShards, HibernateTools itd. NHibernate – implementacja mapowania obiektowo-relacyjnego dla platformy .NET

8 Dodawanie zależności Hibernate do projektu
Można ręcznie pobierać odpowiednie jary, ale wygodniej wykorzystać Mavena Wymagane zależności: <groupId>org.hibernate</groupId> <artifactId>hibernate-core</groudId> <version>4.3.4.Final</version> Trzeba również dodać sterownik do silnika SQL: <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version> jdbc41</version>

9 hibernate.cfg.xml Podstawowy plik konfigurujący połączenie z bazą danych oraz mapowanie obiektowo-relacyjne Można w nim ustawić bardzo dużo parametrów, jednak w przypadku tego tutoriala ograniczymy się do podstawowych Najprościej ściągnąć szablon z Internetu i pozmieniać w nim odpowiednie pola

10 connection.driver_class – klasa sterownika silnika SQL
connection.url – adres:port/nazwa_bazy connection.username, connection.password – oczywiste connection.pool_size – liczba połączeń w puli JDBC Uwaga: „ The built-in Hibernate connection pool is in no way intended for production use. It lacks several features found on production-ready connection pools. See the section discussion in Hibernate Developer Guide for further information.” ~http://docs.jboss.org/hibernate/orm/4.2/quickstart/en-US/html/ch02.html#hibernate-gsg-tutorial-basic-config

11 dialect – klasa wspomagająca tworzenie zapytań SQL dla konkretnego dialektu
Pełna lista dialektów: show_sql – włączenie/wyłączenie logowania przez hibernate treści zapytań SQL hbm2ddl.auto – parametr odpowiedzialny za generowanie schematu bazy danych na podstawie zdefiniowanego mapowania. Możliwe wartości: create – za każdym razem tworzy od nowa schemat bazy create-drop – tak samo jak wyżej, dodatkowo po zakończeniu działania dropuje bazę update – stara się aktualizować ewentualne zmiany schematu validate – sprawdza, czy schemat bazy zgadza się z mapowaniem

12 W tej sekcji listujemy wszystkie klasy, które mają zostać mapowane i zapisywane w bazie danych
Jeżeli korzystamy z mapowania przy pomocy XML’a (o tym za chwilę), zamiast <mapping class=„klasa”/> należy użyć: <mapping resource=„ścieżka_do_pliku_mapującego.hbm.xml”/>

13 Klasa HibernateUtil Utworzenie sessionFactory jest kosztowne, więc wykonujemy je tylko raz jako zmienną statyczną ogólnodostępnej klasy W metodzie configure(string) podajemy ścieżkę dostępu do pliku hibernate.cfg.xml – względem katalogu resources, gdzie domyślnie szuka Hibernate Jedyny sposób utworzenia sessionFactory, który nie jest „deprecated” w Hibernate 4.3.x

14 Mapowanie obiektowo-relacyjne
Na początku tworzymy klasy, których instancje chcemy przechowywać w bazie Standard POJO – Plain Old Java Object – prywatne pola, gettery i setery o nazewnictwie getNazwaPola() (ew. isNazwaPola() dla boolean) – bez żadnych udziwnień Następnie mapujemy obiekt na relację używając jedną z dwóch metod: starszej - przy pomocy plików XML nowszej - przy pomocy adnotacji

15 Mapowanie przez pliki XML
Do każdej mapowanej klasy tworzymy odpowiadający plik nazwa_klasy.hbm.xml Wypisujemy wszystkie pola, które mają być odwzorowywane w bazie Niewygodne – zmiana w kodzie wymusza tę samą zmianę w pliku xml

16 Mapowanie przez adnotacje
Nie trzeba tworzyć żadnych dodatkowych plików, całe mapowanie zawarte w adnotacjach Można adnotować pola albo gettery Mapowaną klasę oznaczamy przy następnie oznaczamy jej pola nie będące typami prostymi oraz mające szczególne właściwości (np. klucz główny) odpowiednimi adnotacjami

17 Podstawowe adnotacje @Entity - klasa jest encją @Table(name=…) – nazwa tabeli w bazie, można ustawić dodatkowe opcje @Id – klucz główny @GeneratedValue(strategy=…) – strategia przydzielania id @Column(name=…) – nazwa kolumny, można ustawić dodatkowe opcje @ManyToOne – relacja wiele do – analogicznie @Embedded – pola zależnej klasy będą w tej samej tabeli (nie będzie tworzona osobna tabela) @Transient – pole nie będzie zapisywane @Lob – duży obiekt (large object)


Pobierz ppt "Marcin nowak, Wojciech baszczyk"

Podobne prezentacje


Reklamy Google