Object Relational Mapping (ORM). Objektmodell - Datenbankmodell.

Slides:



Advertisements
Ähnliche Präsentationen
OmsCube Objektverwaltung, basierend auf einem relationalen Datenbankmanagementsystem.
Advertisements

Object Relational Mapping
Object Relational Mapping
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen.
Datenintegrität Integitätsbedingungen Schlüssel
Klassen - Verkettete Liste -
1 Kapitel 9: Datenbankapplikationen. 2 Datenbankapplikationen MS Access Embedded SQL JDBC Application JDBC Applet Java Servlet Java Server Pages Cold.
1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP.
Transaction Synchronization for XML Data in Client Server Web Applications Stefan Böttcher & Adelhard Türling Universität Paderborn.
PL/SQL - Kurze Einführung -.
JPQL Java Persistence Query Language
Anwendungen des OODM auf die ADB / NDB
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
MySQL.
© A. Kemper / A. Eickler1 Kapitel 5: Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung.
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
Binäre Bäume Richard Göbel.
Sortieren mit Binären Bäumen
Java: Dynamische Datentypen
Listen Richard Göbel.
JTree Richard Göbel.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (07 - Skiplisten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
SQL als Abfragesprache
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 Tabellen In relationalen DB werden Daten in Tabellen organisiert Jede Spalte enthält eine bestimmte Art von Information,
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Dynamische Webseiten Java servlets.
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Otto-von-Guericke-Universität Magdeburg Gamal Kassem 1 Tabellenzeile mit READ lesen READ TABLE itab INDEX idx READ TABLE itab WITH KEY comp1 = f1.... Compn.
Datenintegrität Referentielle Integrität create table
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
Datenbanken 13: Objekt-Klasse-Datenbank
Datenbanken 10: Einfügen, Ändern, Löschen
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
JDBC: JAVA Database Connectivity
FH-Hof Sortieren mit Binären Bäumen Richard Göbel.
Einfach verkettete Listen
Einfach verkettete Listen (OOP)
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Datenintegrität Integitätsbedingungen Schlüssel
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
JDBC (Java DataBase Connectivity)
Einführung in Datenbankmodellierung und SQL
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Hibernate (OR-Mapping)
Datenbankanbindung mit
Beispielanwendung von Java Threads
Structured Query Language
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
Entität Attribute Beziehung AUTOR CD M 1 N leihen erstellen N verfasst
1 // Verkettete Liste 2 // demonstriert verkettete Listen und // Rekursion // (Einfügen am "Fuß") // #include struct Liste { int Element; Liste *weiter;
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
GUI lokaler Speicher Datenbank
Es ist noch kein Datensatz vorhanden
Beispiele zur Datenänderung
Die erste Form der INSERT-Anweisung dient der Neueingabe von Daten:
Titellayout Untertitel.
 Präsentation transkript:

Object Relational Mapping (ORM)

Objektmodell - Datenbankmodell

ORM Pro Datenbanktabelle eine Klasse im Objektmodell (Data Transfer Object; DTO) Pro Datensatz in der Tabelle eine Instanz der Klasse Eigene Klassen für die Datenbankzugriffe (Data Access Object; DAO)

ORM cd_idcd_interpretcd_titel 1Robbie W.Best of 2MadonnaGreatest … ………

Schattendaten id (Primärschlüssel) lastUpdate (optimistic locking) storedInDb (bereits als Datensatz vorhanden)

Data Access Object (DAO) Verschiedene Methoden für das Auswählen Speichern Löschen

findByPrimaryKey SELECT cd_interpret, cd_titel FROM CDS WHERE cd_id = ? ResultSet rs = … if (rs.next()) { CD cd = new CD(); cd.setId(id); cd.setTitel(rs.getString("cd_titel")); cd.setInterpret(rs.getString("cd_interpret")); return cd; } else return null;

findAll() SELECT cd_id, cd_interpret, cd_titel FROM CDS List liste = new ArrayList (); ResultSet rs = … while (rs.next()) { CD cd = new CD(); cd.setId(rs.getInt("cd_id")); cd.setTitel(rs.getString("cd_titel")); cd.setInterpret(rs.getString("cd_interpret")); liste.add(cd); } … return liste;

findByTitle() SELECT cd_id, cd_interpret, cd_titel FROM CDS WHERE cd_titel = ? List liste = new ArrayList (); ResultSet rs = … while (rs.next()) { CD cd = new CD(); cd.setId(rs.getInt("cd_id")); cd.setTitel(rs.getString("cd_titel")); cd.setInterpret(rs.getString("cd_interpret")); liste.add(cd); } … return liste;

save(CD cd) if (cd.isStoredInDb()) { // UPDATE... } else { // INSERT... } PreparedStatement pstmt = … if (pstmt.executeUpdate() == 1) { // ok } else { // Fehler } INSERT INTO CDS (cd_id, cd_interpret, cd_titel) VALUES (?, ?, ?) UPDATE CDS SET cd_interpret = ?, cd_titel = ? WHERE cd_id = ?

remove() DELETE FROM CDS WHERE cd_id = ? PreparedStatement pstmt = … if (pstmt.executeUpdate() == 1) { // ok } else { // Fehler }

Einige wichtige Regeln Parametrierte (?) Statements verwenden Einzelne Spalten mit Namen ansprechen (kein SELECT * …) Update-Count überprüfen Datenbankverbindung wiederverwenden ResultSet und PreparedStatement schließen

INSERT und Primary Key cd_idcd_interpretcd_titel 1Robbie W.Best of 2MadonnaGreatest … ……… INSERT

ResultSet keys = pstmt.getGeneratedKeys(); if (keys.next()) cd.setId(keys.getInt(1)); INSERT und Primary Key getGeneratedKeys() Sequenzen