4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)



Ähnliche Dokumente
10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java)

3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java)

3. Anwendungskern- Framework Grundlagen der Programmierung II (Java)

7. Analyse-Phase: Datenmodellierung Software Engineering

11. Enterprise Java Beans Grundlagen der Programmierung II (Java)

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Labor 3 - Datenbank mit MySQL

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Oracle: Abstrakte Datentypen:

Java EE Projektseminar

Java Lab 2006/12/13 Client

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Datenbanken für Online Untersuchungen

Datenmanagement in Android-Apps. 16. Mai 2013

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

desk.modul : WaWi- Export

Klausur Interoperabilität

WhiteStarUML Tutorial

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

PostgreSQL unter Debian Linux

7. Komponenten Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Bibliografische Informationen digitalisiert durch

Beispiel 1: Filmdatenbank

Java Persistence API 2.x. crud + relationships + jp-ql

Datenbank und Informationssysteme

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6

Ein Ausflug zu ACCESS

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

3. Stored Procedures und PL/SQL

NoSQL mit Postgres 15. Juni 2015

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

MySQL, phpmyadmin & SQL. Kurzübersicht

Datenbanken & Informationssysteme Übungen Teil 1

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Grundlagen der Informatik 2

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug Name: Note:

Oracle SQL Tutorium - Wiederholung DB I -

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Arbeiten mit einem lokalen PostgreSQL-Server

Technische Beschreibung: EPOD Server

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Notes2DB. Machen Sie Ihre Notes-Datenbanken relational! Vortragender: Mag. Ing. Johannes Fiala, Fiala Web Development GmbH

6.9 Java Server Pages

Datenbanken. Ein DBS besteht aus zwei Teilen:

Tag 4 Inhaltsverzeichnis

OP-LOG

Objektrelationale und erweiterbare Datenbanksysteme

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

WS 2002/03. Prof. Dr. Rainer Manthey. Institut für Informatik III Universität Bonn. Informationssysteme. Kapitel 1. Informationssysteme

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Übungen zur Softwaretechnik

Aufgaben zu XPath und XQuery

Tag 4 Inhaltsverzeichnis

Projekt AGB-10 Fremdprojektanalyse

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

3. Übung. Einführung MS Access. TU Dresden - Institut für Bauinformatik Folie-Nr.: 1

105.3 SQL-Datenverwaltung

XI JDBC/IDOC Szenario

SQL und MySQL. Kristian Köhntopp

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

3. Das Relationale Datenmodell

eurovat Magento Extension Magento - Extension Extension V1.4.2 Dokumentation Version 1.0 SNM-Portal UG (haftungsbeschränkt) & Co. KG Vorherstraße 17

SQL structured query language

Informatik 12 Datenbanken SQL-Einführung

Einführung in die Informatik II

Universität Stuttgart Abteilung Anwendersoftware Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Office Objektmodell (1)

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Schlüssel bei temporalen Daten im relationalen Modell

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Transkript:

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006

Übersicht Grundlagen der Programmierung II Einordnung in den Kontext der Vorlesung Anwendungsentwicklung (Referenzarchitektur, Softwarekategorien) Anwendungs-Komponenten (Anwendungskern) Datenbankzugriff Graphische Benutzeroberflächen (Swing, JSF) Client- / Serverkommunikation (RMI) Berechtigungsverwaltung Application Server (EJB) Erweiterte Konzepte (Reflection, Threads, Design Patterns, ) Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 2

Agenda Agenda Persistence Produkte Praktikums-Lösung Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006. 25.4.2006 Seite 3

Was ist der Persistence-Service (objektrelationales Mapping? Persistenz bedeutet, man kann Objekte anlegen nach verschiedenen Kriterien finden und lesen ändern löschen so dass sie nach Programmende weiter existieren Persistence Es werden immer Objekte und keine unstrukturierte Daten verwaltet Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 4

Einordnung in die Referenzarchitektur betriebliche Informationssysteme Persistence cd Persistence, Transaction «A Component» Application Component TransactionManager TransactionalPool TechnicalConfiguration «Abstract T Component» Transaction TransactionResource «Abstract T Component» Persistence QueryAdministration ModelAdministration SystemsManagement TechnicalConfiguration SystemsManagement Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 5

Persistence Wo benötigen wir Persistence in unseren Anwendungen? A-Fall (Use Case) A-Verwalter (Bsp. ContactManager) createcontact findcontactbynameandcity... A-Entitätstyp (Bsp. Contact) getaddress setaddress relocate... Persistence Relationale Datenbank Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 6

Persistence Hauptaufgabe eines Persistence Managers ist das Mapping zwischen Objekt- und Datenbankwelt Mapping zwischen Entitätstypen und Tabellen Java Datentypen und Datenbank Typen. Klasse Contact Attribute: name: String firstname: String address: String... Tabelle CONTACT NAME FIRSTNAME ADDRESS Methoden: getname() setname()... Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 7

Persistence In Persistence-Produkten erfolgt dieses Mapping modellgesteuert Abbildungsmodell Objektmodell Datenbankmodell Contact name : Label firstname : Label phone : PhoneNumber type : ContactType residents 0..n homeaddress 0..1 Address street : Label streetnumber : StreetNumber city : Label oid : OID ADDRESS STREET OID CONTACT NAME FIRSTNAME Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 8 CITY ADDRESSOID PHONE

Persistence Die Behandlung von Vererbungsbeziehungen ist komplex Contact id: Long name: String CONTACT ID TID NAME BCONTACT ID COMPANY BusinessContact company: String PrivateContact birthday: Date PCONTACT ID BIRTHDAY Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 9

Agenda Agenda Persistence Produkte Praktikums-Lösung Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006. 25.4.2006 Seite 10

Produkte Persistence-Produkte Hibernate ist das am häufigsten eingesetzte Open Source Produkt http://www.hibernate.org/ TOPLink ist das das am häufigsten eingesetzte kommerzielle Produkt http://www.oracle.com/technology/products/ias/toplink/ QuasarPersistence ist ein Open Source Produkt der sd&m AG http://www.openquasar.de Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 11

Agenda Agenda Persistence Produkte Praktikums-Lösung Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006. 25.4.2006 Seite 12

Praktikums-Lösung Datenbanktabellen anlegen Die Datenbanktabellen sind analog der Record-Strukturen anzulegen Die Spalten sind entsprechend den Attributen zu benennen Die SQL-Datentypen sind entsprechend den Java- Datentypen zu wählen Definition zum Beispiel in Manager-Klasse Aufruf in Application.configure() CREATE TABLE `book` ( `id` varchar(255) NOT NULL, `authors` varchar(255), `category` varchar(255), `isbn` varchar(255), `title` varchar(255), `year` int(11), PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 13

Praktikums-Lösung Neue Objekte anlegen Definition in Manager-Klasse, Methode executeinsert Generierung eines INSERT SQL- Strings aus Entity-Objekt (über Record-Objekt) Absetzen eines Statement.executeUpdate Trigger durch Entity.store() Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 14

Praktikums-Lösung Abfragen Definition in Manager-Klasse Methoden: findby*, zum Beispiel findbyid Zusammensetzen eines SELECT SQL Strings Absetzen eines Statement.executeQuery Erstellung eines Entitätsobjekts beziehungsweise eines Record Objekts und Übergeben der Werte Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 15

Praktikums-Lösung Objektänderungen Änderung der Attributwerte von Entities Definition in Manager-Klasse Methode: executeupdate Generierung eines UPDATE SQL-Strings aus Entity-Objekt (über Record-Objekt) Absetzen eines Statement.executeUpdate Trigger durch Entity.store() Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 16

Praktikums-Lösung Konfiguration Klasse util.impl.abstractdatabase implementiert Interface util.database Enthält Datenbank-Zugriffs- Parameter (JDBC-Treiber, DB URL, User, Password) Enthält eine Connection, ein Statement und eine Result-Set Ist von der Application zu erreichen Hochschule Darmstadt University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 25.4.2006, Seite 17