Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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” " <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <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; }
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.