Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.

Ähnliche Präsentationen


Präsentation zum Thema: "Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk."—  Präsentation transkript:

1 Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk

2 Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – Hibernate-Einführung2 Hibernate… Objekt/Relationale Persistenz und Abfrage Abbildung zwischen –Java Klassen Datenbanktabellen –Java Datentypen SQL Datentypen

3 Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – Hibernate-Einführung3 Was bedeutet das? Gängige Datenbanken verwenden als Modell Entitäten und Relationen Java verwendet als Modell Objekte O/R Mapper bringt beide Welten zusammen Stellt fertige Mechanismen bereit zur Abbildung von der Objekt-Welt in die ER-Welt

4 Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – Hibernate-Einführung4 Mappings konstruieren Zwei Möglichkeiten, Java Klassen zu DB-Entitäten zu mappen: 1.XML-basiert (Dateien der Form *.hbm.xml) 2.Annotations-basiert (z.B. @Entity)

5 Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – Hibernate-Einführung5 Mappings konstruieren über XML Erster Schritt: Klasse definieren Zweiter Schritt: XML-Datei anlegen und Relationen eintragen Hibernate-XML-Datei: <hibernate-mapping package= " de.uniluebeck.itm.eit.model " > Java-Klasse: class Book { private Integer id; public getId()... public setId(Integer id)... }

6 Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – Hibernate-Einführung6 Mappings konstruieren über Java-Annotationen Erster Schritt: Klasse definieren Zweiter Schritt: Annotationen einfügen Annotationen: @Entity @Table(name = "books") class Book implements Serializable { @Id @GeneratedValue private Integer id; public getId()... public setId(Integer id)... } Java-Klasse: class Book { private Integer id; public getId()... public setId(Integer id)... }

7 Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – Hibernate-Einführung7 Datenmodell Einfache Java-Klassen (POJOs) Zugriff nach Bean-Konventionen (Getter/Setter) oder direkter Attributzugriff Methoden und Attribute mit private & protected möglich Instanziierung im Applikationskern mit new Implementierung des (parameterlosen) Default- Konstruktors erforderlich Hibernate unterstützt auch Collections http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/collections.html http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/collections.html

8 Institut für Telematik | Enterprise-IT-Praktikum Ladestrategien Lazy Referenzierte Entitäten werden nur nach Bedarf geladen Eager Referenzierte Entitäten werden beim ersten Zugriff geladen Ladestrategien lassen sich auf Klassen-, Relationen, oder Query-Ebene anwenden Ermöglicht Einstellungen zur Performance-Optimierung Mit Vorsicht und nur sehr bewusst einzusetzen, da durch einen Eager-Zugriff im worst-case die gesamte Datenbank ausgelesen werden könnte!

9 Institut für Telematik | Enterprise-IT-Praktikum Lebenszyklus einer Entität: die Hibernate Session Session stellt die Objekt-Identität sicher –Verwendet PK, so liefert load() zur selben ID immer dieselbe Instanz –Generierten technischen Schlüssel aber nicht für Implementierung von equals() bzw. hashCode() verwenden! (erst mit flush() werden generierte IDs zugewiesen) Session hat Methoden zur Transaktionssteuerung Session hat Factory-Methoden für Queries, z.B. createQuery, getNamedQuery

10 Institut für Telematik | Enterprise-IT-Praktikum Lebenszyklus einer Entität: die Hibernate Session

11 Institut für Telematik | Enterprise-IT-Praktikum Hibernate-Beispiel: Transaktionssteuerung Zunächst SessionFactory-Objekt generieren Verschiedene Wege, dies zu erreichen… Über die Session-Factory können Sessions generiert und damit wiederum Transaktionen und Persistenzzugriffe gesteuert werden: Session s = HibernateUtil.getSessionFactory().getCurrentSession(); try{ s.beginTransaction(); s.save(new Book()); s.getTransaction().commit(); } catch (Exception e){ s.getTransaction().rollback(); }

12 Institut für Telematik | Enterprise-IT-Praktikum Hibernate Startpunkte http://docs.jboss.org/hibernate/core/3.6/quickstart/en- US/html_single/http://docs.jboss.org/hibernate/core/3.6/quickstart/en- US/html_single/ http://docs.jboss.org/hibernate/core/3.6/reference/en- US/html_single/http://docs.jboss.org/hibernate/core/3.6/reference/en- US/html_single/ http://docs.jboss.org/hibernate/entitymanager/3.6/referenc e/en/html_single/http://docs.jboss.org/hibernate/entitymanager/3.6/referenc e/en/html_single/


Herunterladen ppt "Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk."

Ähnliche Präsentationen


Google-Anzeigen