Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Referent:Stephan Metzler Java EE 5.

Ähnliche Präsentationen


Präsentation zum Thema: "Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Referent:Stephan Metzler Java EE 5."—  Präsentation transkript:

1 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Referent:Stephan Metzler Java EE 5

2 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Über mich … IT Consulting FH-Dozent Schwerpunkt J2EE / EJB / JPA Autor diverser Schulungsunterlagen Firmenschulungen Fachvorträge pers. Fokus :Middle-Tier-Architekturen und O/R-Mapping für verteilte Softwaresysteme

3 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Motivation – JSR 220 OOA Thematik – Annotations, Generics Begriffe eines O/R Mapping Frameworks Hibernate als O/R Mapping Framework Anwendungsbeispiel – Library Architektur von Hibernate Lebenszyklus anhand des Objektzustand

4 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Motivation – JSR 220 OOA Thematik – Annotations, Generics Begriffe eines O/R Mapping Frameworks Hibernate als O/R Mapping Framework Anwendungsbeispiel – Library Architektur von Hibernate Lebenszyklus anhand des Objektzustand

5 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Motivation – JSR 220 OOA Thematik – Annotations, Generics Begriffe eines O/R Mapping Frameworks Hibernate als O/R Mapping Framework Anwendungsbeispiel – Library Architektur von Hibernate Lebenszyklus anhand des Objektzustand

6 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Motivation – JSR 220 OOA Thematik – Annotations, Generics Begriffe eines O/R Mapping Frameworks Hibernate als O/R Mapping Framework Anwendungsbeispiel – Library Architektur von Hibernate Lebenszyklus anhand des Objektzustand

7 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Motivation – JSR 220 OOA Thematik – Annotations, Generics Begriffe eines O/R Mapping Frameworks Hibernate als O/R Mapping Framework Anwendungsbeispiel – Library Architektur von Hibernate Lebenszyklus anhand des Objektzustand

8 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Motivation – JSR 220 OOA Thematik – Annotations, Generics Begriffe eines O/R Mapping Frameworks Hibernate als O/R Mapping Framework Anwendungsbeispiel – Library Architektur von Hibernate Lebenszyklus anhand des Objektzustand

9 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Motivation – JSR 220 OOA Thematik – Annotations, Generics Begriffe eines O/R Mapping Frameworks Hibernate als O/R Mapping Framework Anwendungsbeispiel – Library Architektur von Hibernate Lebenszyklus anhand des Objektzustand

10 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Beziehungen – O vs R Collections Hibernate Session und Transaktionen Datenbankabfragen Hibernate Types Fetching und Caching Best Practice

11 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Beziehungen – O vs R Collections Hibernate Session und Transaktionen Datenbankabfragen Hibernate Types Fetching und Caching Best Practice

12 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Beziehungen – O vs R Collections Hibernate Session und Transaktionen Datenbankabfragen Hibernate Types Fetching und Caching Best Practice

13 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Beziehungen – O vs R Collections Hibernate Session und Transaktionen Datenbankabfragen Hibernate Types Fetching und Caching Best Practice

14 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Beziehungen – O vs R Collections Hibernate Session und Transaktionen Datenbankabfragen Hibernate Types Fetching und Caching Best Practice

15 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Beziehungen – O vs R Collections Hibernate Session und Transaktionen Datenbankabfragen Hibernate Types Fetching und Caching Best Practice

16 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Agenda Beziehungen – O vs R Collections Hibernate Session und Transaktionen Datenbankabfragen Hibernate Types Fetching und Caching Best Practice

17 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Buchempfehlung Java Persistence with Hibernate Second Edition of Hibernate in Action Christian Bauer and Gavin King November, 2006 | 880 pages ISBN: Softbound print book PDF ebook

18 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Feingranulare Klassenarchitektur als eingebettete Objekte (Embeddable Klassen). Address (street, city, etc) kapseln Widerverwendbarkeit Vereinfacht Refactoring - name: String - address: Address Company Comp NAME: VARCHAR STREET: VARCHAR CITY: VARCHAR - street: String - city: String Address

19 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Persistente Klassen mit Identifikation deklarieren Synthetic Keys (ohne Geschäftsrelevanz) non-Primitive Type (java.lang.Long public Long getId() { return this.id; }

20 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Eigene Datei für jedes XML Mapping Keine monolithische Mapping Dateien Vereinfacht Teamumfeld

21 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice XML Mapping als Ressourcen laden Mapping Dateien zusammen mit POJOs deployen

22 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice SQL Strings aus Applikation auslagern Non ANSI Standard SQL Praxiserfarung unterstützt Portierbarkeit SELECT …

23 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice JDBC Hibernate überlassen benutzerdefinierte JDBC Connection als letzter Ausweg Eigene Implementation als net.sf.hibernate.connection.ConnectionProvider JDBC

24 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Benutzerdefinierte Typen definieren Java Typ soll persistiert werden (Auslagerung in Komponente ist nicht sinnvoll!) Implementierung eines net.sf.hibernate.UserType trennt Applikation und (Hibernate) Typen Transformation UserType

25 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Direkte JDBC nur im Flaschenhals BULK-SQL können als direkte JDBC schneller sein mit Benchmark beweisen! (Hibernate)-Session bietet Transaktions-Strategy HibernateJDBC

26 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Session Flushing Synchronisation mit der Datenbank beeinträchtigt Performanz (Transktionsende / Querys / Session.flush()) automatisches Session Flushing ausschalten Reihenfolge der Abfragen Reihenfolge von Operationen in Transaktionen Session.flush()

27 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice bei Multi-Tier-Architektur saveOrUpdate() verwenden Session über Tiers transferieren für jeden Service Request eigene Session verwenden mit Session.saveOrUpdate() den persistenten Zustand eines Objektes aktualisieren Hibernate.Session CLIENT WEB LOGIC EIS

28 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice eigene Session pro Use Case kurze Datenbank Transaktion erhöht Skalierbarkeit Detached Objects verwenden Session schliessen Session Session

29 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Hibernate Exceptions nicht "beheben" Transaktion zurückführen (Rollback) Session schliessen find() anstelle von load() TRANSACTIONEXEPTIONROLLBACK

30 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Thread Local Session Pattern Session durch Request assoziert FilterPOJOServletJSPSession request response Session.close()

31 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Business Logik von Hibernate abstahieren Hibernate relevater Code in Interface auslagern Thread Local Session Pattern DAO in Kombination Hibernate User Types Benutzerdefinierte JDBC BusinessObjectDataAccessbject usesencapsulates

32 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice Equals() und hashCode() überschreiben Objektvergleich ausserhalb Session problematisch nie PK der Datenbank verwenden stattessen BK (Business Key) public boolean equals(Object obj) { if (this == obj) return true; if (!(obj instanceof User)) return false; final User user = (User) obj; return !( != null ? ! .equals(user. ): user. != null); }

33 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Best Practice keine exotischen Beziehungen verwenden gute Use Cases definieren selten N:M Beziehungen oft zusätzliche Informationen in der Link Tabelle erwünscht zwei 1:N Beziehungen mit zusätzlicher Link Tabelle IDName 1 2 IDProjekt 1 2 ID_NameID_ProjektStart 11 21

34 Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Lern-Ziel


Herunterladen ppt "Stephan Metzler IT Consulter Java Hibernate Framework und Persistence API Referent:Stephan Metzler Java EE 5."

Ähnliche Präsentationen


Google-Anzeigen