hibernate postgresql n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Hibernate PostgreSQL PowerPoint Presentation
Download Presentation
Hibernate PostgreSQL

Loading in 2 Seconds...

play fullscreen
1 / 17

Hibernate PostgreSQL - PowerPoint PPT Presentation


  • 149 Views
  • Uploaded on

Hibernate PostgreSQL. Marcin nowak , Wojciech baszczyk. PostgreSQL. Jest to jeden z najpopularniejszych wolnodostępnych systemów zarządzania relacyjnymi bazami danych Działa na wielu systemach operacyjnych

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Hibernate PostgreSQL' - melvin-taylor


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
hibernate postgresql

HibernatePostgreSQL

Marcin nowak, Wojciech baszczyk

postgresql
PostgreSQL
  • Jest to jeden z najpopularniejszych wolnodostępnych systemów zarządzania relacyjnymi bazami danych
  • Działa na wielu systemach operacyjnych
  • Posiada mechanizm MultiversionConcurrency 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
instalacja silnika postgresql
Instalacja silnika PostgreSQL
  • W celu instalacji należy pobrać odpowiednią wersję ze strony:http://www.postgresql.org/download/
  • 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
co to jest hibernate
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
dodawanie zale no ci hibernate do projektu
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>9.3-1101-jdbc41</version>
hibernate cfg xml
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
slide10

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
slide11

dialect – klasa wspomagająca tworzenie zapytań SQL dla konkretnego dialektu

  • Pełna lista dialektów: http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/dialect/package-summary.html
  • 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
slide12

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 <mappingclass=„klasa”/> należy użyć:<mappingresource=„ścieżka_do_pliku_mapującego.hbm.xml”/>
klasa hibernateutil
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
mapowanie obiektowo relacyjne
Mapowanie obiektowo-relacyjne
  • Na początku tworzymy klasy, których instancje chcemy przechowywać w bazie
  • Standard POJO – PlainOld 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
mapowanie przez pliki xml
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
mapowanie przez adnotacje
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 pomocy @Entity, 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
podstawowe adnotacje
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 jednego@OneToMany, @OneToOne, @ManyToMany – 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 (largeobject)