Javabasierte Webtechnologien Objektrelationales Mapper und JDO.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Datenbanken Einführung.
Objektorientierte Datenbanken
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Objektorientierter Entwurf (OOD) Übersicht
Dipl.- Dok. Rusalka Offer
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
SendEplanung Datenbank
FH-Hof Einbindung von JavaScript Anweisungen
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
DOM (Document Object Model)
XINDICE The Apache XML Project Name: Jacqueline Langhorst
XDoclet ETIS SS05.
Modellierung der Zugriffslogik auf Datenbanktabellen Software Component Technology for Distributed Applications Andreas Fink.
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Access 2000 Datenbanken.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Datenmodellierung - Aufbau einer Datenbank -
DVG Klassen und Objekte
JDBC EDV JDBC.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Java Data Objects (JDO) und Implementierung in FastObjects.
Smartphones im Kanzleinetz Vergleich der technischen Umsetzung COLLEGA - TAG Freitag, 27. November 2009.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Einführung und Überblick
JDBC: JAVA Database Connectivity
Visualisierung objektrelationaler Datenbanken
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.
Wir bauen uns eine Webapplikation!
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Java für Fortgeschrittene
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Sesame Florian Mayrhuber
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Überblick über die Datenbankproblematik
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Einführung in Datenbankmodellierung und SQL
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Von Isabelle Spörl und Simon Schausberger
XML und Datenbanken © 2006 Markus Röder
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Torque robert.resch-wolfgang.schneider. uebersicht Was ist Torque Komponenten von Torque Generator Erzeugte Klassen Methoden Torque in Turbine Demobeispiel.
Mind the Gap Die semantische Lücke zwischen Objekten und Relationen.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Motivation Motivation für objektorientierte DBMS (ODBMS): –„Impedance Mismatch“ zwischen relationalem Datenmodell und Programmiersprachen-Datenmodell erfordert.
Text Encoding Initiative Universität zu Köln Daten- und Metadatenstandards Seminarleitung: Patrick Sahle Seminarleitung: Patrick Sahle Referentin: Anna.
Datenbank System (DBS) - Warum?
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
O/R - Mapper Hibernate ETIS SS04. Hibernate 2 Gliederung Motivation Architektur Persistente Klassen Mapping-Files Konfiguration und Datenbanken Ablauf.
Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine.
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
© 2012 TravelTainment Datenbankzugriffe in Java-Applikationen mit Hilfe des Spring Frameworks Simon Wirtz Seminarvortrag WS 13/14 Oktober 2013.
DOAG Regionaltreffen Trier/Saarland Verwendung von TopLink in J2EE Applikationen 09. September 2003 Marcus Keuper, Pfeil GmbH
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
C++ FÜR cOMPUTERSPIELENTWICKLER
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
Von Wietlisbach, Lenzin und Winter
Von Wietlisbach, Lenzin und Winter
 Präsentation transkript:

Javabasierte Webtechnologien Objektrelationales Mapper und JDO

Lars Kägebein2 Überblick Motivation Objektrelationale Mapper - Überblick - Beispiel Hibernate - Performance - Fazit Java Data Objekt - Überblick - JDO API - Vom normalem Objekt zu einem JDO - Fazit

Lars Kägebein3 Motivation Lösen des Impendance Mismatch Problems - Objektorientierte Lösungen in komplexen Anwendungen - Zur Speicherung meistens Relationale Datenbanken - unterschiedliche Paradigmen - ziel : Vorteil von beiden vereinen Probleme - Objektidentität vs Primärschlüssel - Kompositionsmodell vs Fremdschlüssel - Vererbungsmodel vs ? - Verschiedene Datentypen

Lars Kägebein4 Überblick O/R Mapper Kleiner Projekte eventuell selbst lösen - Sql statments über jdbc / resultSet umwandeln in Datenobjekte Bei komplexen Anwendungen mapper nutzen - Automatische Generierung von Datenklassen - Performanceoptimierung möglich die den Overhead durch das Mapping ausgleicht - Unabhänigkeit von verschiedenen Datenbank Herstellern - Cayenne, Jakarta OJB, TopLink, Hibernate

Lars Kägebein5 O/R Mapper Hibernate Warum Hibernate - Open Source (LGPL) - Populär (circa downloads / Monat) - Unterstützung aller großen Datenbanken z.b. mySql, PostgreSql, Oracle, DB2 … - Besitzt Optimierungmöglichkeiten wie Caching, Connection-pooling - Möglichkeit zur Nutzung unterschiedlicher Entwicklungsszenarien - Generierung von java klassen wenn DB Schemata vorhanden und umgekehrt - verschiedene Anfragesprachen (hql, sql, criteria Queries) - Ausführliches logging durch log4j

Lars Kägebein6 Funktionsweise von Hibernate Genereller Aufbau - Hibernate.properties für Datenbank und Optimierungsparameter - Für jede Tabelle in der DB eine.java und eine.hbm.xml -.java beschreibt die Tabelle selber als Objekt -.hbm.xml enthält Datentypen mapping und zusätzliche Parameter

Lars Kägebein7 Arbeiten mit Hibernate Java Datei  hbm.xml Datei

Lars Kägebein8 Zusammenspiel zwischen der Datenbank und Hibernate Ablauf im Detail - Zugriff nur über die Datenobjekte die aus der Session kommen (selection) oder in die Session gehen (insert) - Session von SessionFactory generiert, dort auch Optimierungen umgesetzt - Zugriff auf Datenbank erfolgt intern durch JDBC oder ähnliches

Lars Kägebein9 Anfragen am Beispiel Erstellen und beenden einer Session Eintrag in die Datenbank keinerlei Sql ! nur setter Methoden oder mit Konstruktoren arbeiten für inserts!

Lars Kägebein10 Anfragen am Beispiel Verschiedene Abfragen -HQL als Objektorientierte Erweiterung von SQL - versteht Vererbung, Polymorphie und Assoziationen -Direkte Abfrage über Criteria - kein sql notwendig

Lars Kägebein11 Tools und Performance Performance Sehr abhängig von den Einstellungen und der Anwendung (Cache Zuweisungen für Querys) Schlechte Erfahrungen im Zusammenspiel mit Tomcat Tools Kein erstellen der java bzw. xml Dateien notwendig wenn db-schemata schon vorhanden Hibernate-extensions beinhaltet folgende Tools : - class2hbm, ddl2hbm, hbm2java - dadurch alle Szenarien abgedeckt

Lars Kägebein12 Fazit Zwar gewisser Aufwand nötig zur Einarbeitung jedoch danach sehr unabhängig von der Datenbank Entwickler muss nicht wissen wie DB Schemata aufgebaut, sämtliche Möglichkeiten ergeben sich durch die Get und Set Methoden Durch Criteria keine Kenntnisse von Sql nötig Nachteil jedoch eventuell Langsamer wenn DB Schema sich ändert muss alles geändert werden Kein genereller Standard, unterstützt „nur“ Datenbanken (keine anderen Formate)

Lars Kägebein13 JDO Einführung JDO = Java Data Objects Standard (API) zur persistenten Speicherung von Java Objekten Stellt Interfaces zur Verfügung welche dann von der jeweiligen Implementierung auf den Datenspeicher zugeschnitten sind Dadurch Anwendung unabhängig vom Speicherort seiner Objekte / Daten, xml-files genauso möglich wie verschiedenste Datenbanken Soll Objektorientierte Sichtweise auf Daten ermöglichen und Anwendung vom Prozess der Persistierung komplett befreien

Lars Kägebein14 JDO API Bestandteile (1) JDOHelper für statische Hilfsmethoden und zur Erzeugung der PMF, zusätzlich noch Methoden zum ermitteln des Zustandes bestimmter JDO Objekte

Lars Kägebein15 JDO API Bestandteile (2) PMF fordert einzelne Instanzen des PM an die darüber konfiguriert werden können Parameter zur Optimierung möglich wie Transaktionstrategie und Cachesematik einstellungen Angabe der Datasource PM verwaltet JDO-Objekte die dort angelegt,gesucht und gelöscht werden können Jeder PM hat exklusiven Objektcache und genau einen Transaktionskontex zwecks transaktionaler Absicherung Query-Interface dient zur Absetzung von Suchanfragen sind in JDO-Query Language formuliert

Lars Kägebein16 Vom Objekt zu JDO Objekt (1) Leicht zu Erreichen und Stärke von JDO Angabe von den persistenten Eigenschaften von allen Klassen im Package der Anwendung in XML Metadatei Mögliche persistence-modifier hierbei : - none, transactional, persistent Persitente Attribute : erfordern Speichermediumabgleich,unterliegen Transaktionsgrenzen Transactionale Attribute : unterliegen Transaktionsgrenzen None : sonstige Persistent und Transactional müßen von JDO Implemtierung beachtet werden

Lars Kägebein17 Vom Objekt zu JDO Objekt (2) Code Enhancer erweitert automatisch den.class Bytecode der Normalen Klasse um JDO Erweiterung Je nach Definition in der Meta Datei klasse nun : Persistent Capable, muss auf jeden Fall erweitert werden Persistent Aware, klasse selber hat keine persistenten Attribute greift aber auf welche zu (Vererbung etc) Sonstiges muss nicht vom Enhancer betrachtet werden Vorteil : sehr schnelle Erweiterung vorhandener Objekte Nachteil : inwiefern widersprechen Veränderungen im ByteCode der Java Grundidee der Unabhängigkeit ?

Lars Kägebein18 Identität von JDO Objekten In Java Anwendungen von == bestimmt (gleicher Speicherbereich innerhalb der JVM) Bei JDO nicht sicher da Objekt von Anwendung oder Speichermedium kommen kann ! Je nach Design der Anwendung : Application Identity, dabei Verwaltet die Anwendung die Datenobjekte durch hinzufügen von Objekt-Id klasse zur eigentlichen klasse Sinnvoll für hoch portable Klassen für verschiedene Anwendungen, nutzbar über verschiedene JDO Implementationen hinweg Datastore Identity, hier verwaltet eine Objekt id Klasse alle Objekte die aus der Speicherquelle kommen und garantiert dadurch Identität (nicht sichtbar)

Lars Kägebein19 JDO Objektzustände Können über JDOHelper abgefragt werden - Mögliche zustände hierbei : - Persistent (im Speichermedium) - transactional (mit Transaktion verbunden) - dirty (geändert in der Transaktion) - new (während der Transaktion persitent geworden) - deleted (innerhalb der Transaktion gelöscht) Stellt im Prinzip die Eigenschaften dar die in der Meta Datei festgelegt wurden Dient zur internen Verwaltung der Transaktionen in JDO

Lars Kägebein20 Anfragesprache JDO-QL Ziel ist es ein Objekt zurückzuliefern oder eine Collection über die dann per Get Methoden die Werte ausgelesen werden können WHERE deklaration durch Filter abgebildet Keine Like Operatoren sondern startWith() und endsWith() Anwendung auf das Ergebnis Objekt

Lars Kägebein21 Fazit Vorteile Performanceeinschätzungen schlecht möglich da sehr stark abhängig von JDO Implementierung Dadurch das als Standart definiert verschiedenste Implementierungen denkbar Sehr schnelle Erreichbarkeit von Objektpersistenz Anwendungen können ihr Speichermedium schnell ändern,doppelte Verwendung von JDO Objekten denkbar z.b. online / offline Umgebungen Nachteile Inwiefern widersprechen Veränderungen im ByteCode der Java Grundidee der Unabhängigkeit ? Anfragesprache (noch) nicht sehr mächtig, soll aber in der Zukunft erweitert werden

Lars Kägebein22 Quellen Studienarbeit Tobias Vogel Artikel : Freie Sicht auf Daten (Javamagazin 06/04)

Lars Kägebein23 Fragen ? Vielen Dank für Ihre Aufmerksamkeit