Содержание
- 2. ORM Mapowanie obiektowo-relacyjne (ang. Object-Relational Mapping ORM) – sposób odwzorowania obiektowej architektury systemu informatycznego na bazę
- 3. ORM Korzystanie z ORM wymaga: Utworzenia modelu danych w języku obiektowym – klasy i relacje występujące
- 4. JPA Java Persistence API (skrót JPA) – oficjalny standard mapowania obiektowo-relacyjnego (ORM) firmy Sun Microsystems dla
- 5. Hibernate ORM Hibernate: jest obecnie jednym z najpopularniejszych frameworków ORM. Projekt ten jest tworzony przez firmę
- 6. Architektura Hibernate Źródło:http://www.onlinetechvision.com/wpcontent/uploads/2011/09/Hibernate_Architecture.png Java Transaction API Java Naming and Directory Interface
- 7. Configuration Obiekty klasy Configuration służą do konfiguracji Hibernate. Zdefiniowana konfiguracja określa sposób działania biblioteki w tworzonej
- 8. Configuration (cd..) 1. Konfiguracja Hibernate bez użycia plików konfiguracyjnych XML Configuration configuration = new Configuration(). setProperty("connection.driver_class","com.mysql.jdbc.Driver").
- 9. Configuration (cd..) 1. Konfiguracja Hibernate bez użycia plików konfiguracyjnych XML Configuration configuration = new Configuration(). setProperty("connection.driver_class","com.mysql.jdbc.Driver").
- 10. org.hibernate.dialect.MySQLDialect jdbc:mysql://localhost/dbname com.mysql.jdbc.Driver root validate Configuration (cd..) W tym przypadku mapowanie zdefiniowane jest w osobnym pliku
- 11. Configuration (cd..) Plik mapowania student.hbm.xml "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- 12. org.hibernate.dialect.MySQLDialect jdbc:mysql://localhost/dbname com.mysql.jdbc.Driver root validate Configuration (cd..) Istnieje również możliwość podania nazw mapowanych klas zawierających adnotacje
- 13. SessionFactory Twórcy Hibernate zaprojektowali interfejs SessionFactory z myślą o współdzieleniu aplikacji. Gdy w ramach jednej aplikacji
- 14. Session Session jest głównym interfejsem w każdej aplikacji wykorzystującej Hibernate. Obiekty klasy Session są lekkie i
- 15. Definiowanie obiektów do mapowania Obiekty używane do mapowania obiektowo-relacyjnego to zwykłe obiekty Java. Z uwagi jednak
- 16. public class Student implements Serializable{ private static final long serialVersionUID = -300025L; private int studentId; private
- 17. org.hibernate.dialect.MySQLDialect jdbc:mysql://localhost/BazaStudentow com.mysql.jdbc.Driver root update Plik konfiguracyjny Hibernate 1. Konfiguracja Hibernate definiowana jest w elemencie głównym
- 18. Plik konfiguracyjny Hibernate Właściwość „hibernate.dialect” org.hibernate.dialect.MySQLDialect Parametr ten określa dialekt dla bazy, z którą ma nastąpić
- 19. RDBMS Dialect DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS390 org.hibernate.dialect.DB2390Dialect PostgreSQL org.hibernate.dialect.PostgreSQLDialect MySQL5 org.hibernate.dialect.MySQL5Dialect MySQL5 with
- 20. Plik konfiguracyjny Hibernate Właściwości „connection.driver_class” i "connection.url" com.mysql.jdbc.Driver jdbc:mysql://localhost/BazaStudentow Właściwości te pozwalają ustalić sterownik JDBC oraz
- 21. Plik konfiguracyjny Hibernate Właściwość „hbm2ddl.auto” update Parametr ten umożliwia testowanie i tworzenie struktury bazy danych podczas
- 22. Plik student.hbm.xml określający mapowanie obiektowo-relacyjne Powyższy kod mapuje obiekty klasy student na tabelę student w bazie
- 23. import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; public class HibernateStudentDB {
- 24. Wynik działania aplikacji
- 25. Zamiast definiować plik XML zawierający mapowanie obiektowo-relacyjne, można to mapowanie zdefiniować bezpośrednio w kodzie klasy Student
- 26. import java.io.Serializable; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table;
- 27. public static void main(String[] args) { Student student = new Student("Adrian", "Nowak", 8934890); Configuration configuration =
- 28. Jednokierunkowa relacja jeden do wiele
- 29. import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table;
- 30. package hihbernatestudentdbadnotationonetomany; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Telefon implements Serializable
- 31. org.hibernate.dialect.MySQL5Dialect jdbc:mysql://localhost/BazaStudentowAdnotacje com.mysql.jdbc.Driver root update Jednokierunkowa relacja jeden do wiele
- 32. import java.util.ArrayList; import java.util.List; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry;
- 33. Dwukierunkowa relacja jeden do wiele
- 34. Dwukierunkowa relacja jeden do wiele import java.io.Serializable; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import
- 35. Dwukierunkowa relacja jeden do wiele import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @Entity
- 36. Dwukierunkowa relacja jeden do wiele import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import
- 37. Relacja wiele do wiele
- 38. @Entity @Table(name="student") public class Student implements Serializable{ private static final long serialVersionUID = -300025L; @Column(name="id_studenta", unique=true)
- 39. @Entity @Table(name="przedmiot") public class Przedmiot implements Serializable{ private static final long serialVersionUID = -300040L; @Id @GeneratedValue
- 40. Zapytania SQL Session session = factory.openSession(); //Zapytanie pobiera wszystkie encje klasy Student z bazy danych ArrayList
- 41. Zapytania HQL Session session = factory.openSession(); //Zapytanie pobiera wszystkie encje klasy Student z bazy danych Query
- 42. Criteria Session session = factory.openSession(); //Zapytanie pobiera wszystkie encje klasy Student z bazy danych //Brak ustawionych
- 43. Session session = factory.openSession(); CriteriaBuilder builder = session.getCriteriaBuilder(); CriteriaQuery criteria = builder.createQuery(Student.class); Root root = criteria.from(Student.class);
- 44. Zapytania nazwane import java.io.Serializable; import java.util.List; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.NamedQueries;
- 46. Скачать презентацию