1 / 14

Hibernate Podstawy

Hibernate Podstawy. Plan wykładu. Modelowanie relacyjno-obiektowe Klasy trwałe i encje Definiowanie relacji pomiędzy klasami trwałymi Wyszukiwanie danych. Relacyjne bazy danych - zalety. Zarządzanie dużymi ilościami danych wyszukiwanie, sortowanie Zarządzanie grupami danych

andie
Download Presentation

Hibernate Podstawy

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hibernate Podstawy

  2. Plan wykładu • Modelowanie relacyjno-obiektowe • Klasy trwałe i encje • Definiowanie relacji pomiędzy klasami trwałymi • Wyszukiwanie danych

  3. Relacyjne bazy danych - zalety • Zarządzanie dużymi ilościami danych • wyszukiwanie, sortowanie • Zarządzanie grupami danych • Łączenie, agregacja • Współużytkowanie • Współbieżność (transakcje) • Integralność • Więzy integralności • Izolacja transakcji

  4. Relacyjne bazy danych - wady • Niezgodność modelu pojęciowego z modelem implementacyjnym • Brak środków hermetyzacji i modularyzacji (brak oddzielenia implementacji od specyfikacji)

  5. Technologie dostępu do bazy danych (I) • JDBC • Podstawowy interfejs dostępu do baz danych • Ręczne kodowanie w JDBC uciążliwe i podatne na błędy • SQLJ • Naturalne zagnieżdżanie poleceń SQL w kodzie Java • Odporna na błędy alternatywa dla bezpośredniego korzystania z JDBC • Martwy standard

  6. Technologie dostępu do bazy danych (II) • Encyjne EJB 2.x • Nienaturalne • Złożone • Biblioteka znaczników JSTL SQL • Wygodna w prostych aplikacjach opartych na JSP • Miesza logikę biznesową z logiką prezentacji, narusza model MVC • Technologie odwzorowania obiektowo-relacyjnego • Efektywnie mapują świat obiektów na świat relacyjnej bazy danych • Najczęściej działają w warstwie webowej aplikacji

  7. Mapowanie obiektowo-relacyjne • Skorzystać z zalet relacyjnych baz danych • Jednocześnie nie rezygnując z obiektowości

  8. Java Persistance API • Odejście od modelu relacyjnego na rzecz wygodnego i naturalnego obiektowego modelu danych • Obiektowy język zapytań EJB QL • Uniezależnienie się od bazy danych • Podejście obiektowe : dziedziczenie, kolekcje, zależności • Automatyczna obsługa transakcji wewnątrz kontenera EJB • Wbudowane wsparcie dla optimistic lock • Rezygnacja ze wzorca DTO • Wykorzystanie adnotacji

  9. Architektura

  10. Konfiguracja <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN” "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="hibernate.connection.url">jdbc:oracle:thin:@desyesb.oracle.dmcs.pl</property> <property name="hibernate.connection.password">admin</property> <property name="hibernate.connection.username">admin</property> <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property> <mapping class=”przyklad.Uzytkownik" /> </session-factory> </hibernate-configuration>

  11. SessionFactory • Instancja org.hibernate.cfg.Configuration służy do zbudowania obiektu SessionFactory. • SessionFactory przechowuje skompilowane mapowania oraz konfiguracje środowiska Hibernate dla pojedynczej bazy. • SessionFactory jest dzielony pomiędzy wiele wątków. • SessionFactory jest podstawą do stworzenia obiektu Session.

  12. Session • Session jest jednowątkowym obiektem reprezentującym dialog pomiędzy aplikacją, a bazą danych. Obiekt Session opakowuje połączenie JDBC. • Sesja stanowi podstawową jednostkę pracy z Hibernatem. • Session stanowi podstawę do stworzenia obiektu Transaction.

  13. Synchronizacja bazą danych Session sessions = HibernateUtil.getSession(); sessions.getTransaction().begin(); List<Uzytkownik> list = sessions.createQuery("from Uzytkownik").list(); for (Uzytkownik u : list) System.out.println(u.getImie()); Uzytkownik u = new Uzytkownik(); u.setImie("jan"); sessions.persist(u); sessions.getTransaction().commit(); sessions.close();

  14. Przykład – EJB3 public @Stateless class UzytkownikDAOBean implements UzytkownikDAO { @PersistenceContext(unitName = "PostgresU") private EntityManager entityManager; public Uzytkownik addNew() { Uzytkownik uzytkownik = new Uzytkownik(); uzytkownik.setImie(”Jan"); entityManager.persist(uzytkownik); return cust; } }

More Related