JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping (ORM). Objektmodell - Datenbankmodell.
Advertisements

M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
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.
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Anwendungen des OODM auf die ADB / NDB
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
Zusammenfassung des Kapitels 8
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Internet-Datenbanken
Verteilte Software - Java - Prozedurale Programmierung 1
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Objektorientierte Datenbanken
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
Java: Objektorientierte Programmierung
Listen Richard Göbel.
FH-Hof SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
Dynamische Webseiten Java servlets.
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
Objektorientierte Programmierung JDK-Klassenbibliothek
JDBC Konzepte Realisierung von Zugriffen
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
Filiale pea09 Die Einbindung der MySQL-Datenbank in das Servlet.
ansprechendes Design Übersichtlichkeit simple(selbsterklärende) Navigation unsere Credos : design programming Ltd.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
04 - Actions Actions Actions 2 Motivation In verschiedenen Swing-Komponenten werden ausgelöste Aktionen durch ActionListener behandelt. Häufig werden.
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
JDBC EDV JDBC.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
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.
Vom UML Modell ohne Umwege zur Datenbank
Java Data Objects (JDO) und Implementierung in FastObjects.
Verteilte Transaktionen mit EJBs und JDBC 2.0
JDBC: JAVA Database Connectivity
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Rekursive Funktionen (Fakultät)
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Exception Handling in Java
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Datenbankanbindung mit
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
OQL-Anbindung an Java (1) Java als Beispiel für die Einbettung von OQL in eine Programmiersprache Die OQL-Einbettung in Java ist teilweise mit dynamischem.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Motivation Motivation für objektorientierte DBMS (ODBMS): –„Impedance Mismatch“ zwischen relationalem Datenmodell und Programmiersprachen-Datenmodell erfordert.
Objektorientierte Datenbanken zBeim vorigen Mal: yJava Data Objects zHeute: yDer Object Data Standard der ODMG-Group xKurz: ODMG-Standard yDie POET-Implementierung.
JDBC Java DataBase Connectivity
 Präsentation transkript:

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich JDBC & ODMG

Motivation JDBC & ODMG realisieren unterschiedliche Ansätze zum DB-Zugriff aus Java: JDBC Paket von Klassen / Interfaces Bestandteil des JDK direkte Nutzung von SQL ODMG-Standard definiert eigenes Datenmodell, Anfragesprache sowie diverse Programmiersprachenanbindungen für Objektdatenbanksysteme JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich

Studentenverwaltung JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich

JDBC Standardschnittstelle zum Zugriff auf relationale Datenbanken per SQL Anweisung in Java seit Java Version 1.1 Bestandteil der Standard-API Package java.sql java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet java.sql.ResultSetMetaData Low-Level-API JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich

Genereller Ablauf einer DB-Anbindung via JDBC JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich java.sql.DriverManager Laden des Treibers: Verbindungsaufbau zur Datenbank: Beispiele URL:

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich Treiber

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich java.sql.Connection Erzeugen eines Statement-Objektes: Statement createStatement() throws SQLException; Studiverwaltung: import java.sql.* ; public class DBRequest { public static void main (String [] args) { try { // Laden des Treibers Class c = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // Aufbau der Verbindung zur DB Connection con = DriverManager.getConnection("jdbc:odbc:studiverw"); //Statement-Objekt erzeugen Statement stmt = con.createStatement();... Anfragen stellen, Ergebnisse behandeln... } catch (Exception e) { System.out.println( e ) ; } }

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich java.sql.Statement ResultSet executeQuery (String sql) throws SQLException; int executeUpdate (String sql) throws SQLException; boolean execute (String sql) throws SQLException; Einfache SQL-Anfrage: DML- oder DDL-Befehl: Sequenz von SQL-Befehlen:

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich java.sql.ResultSet / java.sql.ResultSetMetaData ResultSet Zugriff auf einzelne Attribute: Zugriff auf einzelne Tupel: ResultSetMetaData

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich import java.sql.* ; public class DBRequest { public static void main (String [] args) { try { Class c = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:studiverw"); makeDBRequest(con); } catch (Exception e) { System.out.println( e ); } } public static void makeDBRequest (Connection con) { try { Statement stmt = con.createStatement(); ResultSet rsStudent = stmt.executeQuery( "SELECT * FROM Studenten") ; System.out.println( Vorname, Nachname, Matrikelnummer); while (rsStudent.next()) { System.out.println( rsStudent.getString(Vorname)+, +rsStudent.getString (Nachname) +, + rsStudent.getInt(MatrNr)); } catch (Exception e) { System.out.println( e ); } rsStudent.close(); stmt.close(); } Anwendung

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich ODMG-Standard Definiert wichtigsten Eigenschaften eines ODBMS Objektmodell ODL /OIF OQL diverse Bindings Zusätzliche Eigenschaften Typkonstruktoren Klassen, Methoden Vererbung, Extension, Persistenz Objekt-Identität

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich Objektmodell / ODL interface UniAngestellter { void startJob() raises (JstartException); void stopJob() raises (JstopException); void setGehalt(in long gehalt); }; class StudentHöxter (extent Student) { … } class SHK:Student {... void setGehalt ( in long matrNr); } class Student { attribute long matrNr; attribute string vorname;... } Operationen Objekttyp IObjekttyp II Attribute

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich Object Query Language

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich Java-Binding Java-ODL Objekttypen und Literale werden auf Java-Klassen und primitive Datentypen abgebildet Attribute / Operationen sind identisch mit Attributen / Methoden der jeweiligen Klassen Exceptions werden direkt auf den selben Mechanismus in Java übertragen Strukturen werden anhand von Java-Klassen nachgebildet Extensionen werden nicht unterstützt Kollektionen werden durch SetOfObject, BagOfObject, ListOfObject... realisiert Java-OML Database Transaction

Beispielanwendung für POET /* * Konfigurationsdatei: * ptjavac.opt * * (impliziter) Aufruf durch den Precompiler-Aufruf: * ptjavac -xc *.java */ [schemata\my_dict1] ; so heisst das Dictionary (=Schema) oneFile = false [databases\my_db] ; dieser Eintrag legt den Namen der DB fest oneFile = false [classes\Student] ; Hier wird die persistenzfähige Klasse festgelegt persistent = true ; diese Klasse ist persistent public class Student { Private String vorname, nachname, studiengang; Prviate int matrNr; public Student (String vname, String nname, String stgang, int matNr.) { vorname=vname ; nachname=nname ; studiengang=stgang ; matrNr = matNr ; } public String getNachname() { return nachname;} … } JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich

Beispielanwendung für POET import COM.POET.odmg.*; public class Lookup { static void holeObjekt(Database db) throws ODMGException { Transaction txn = new Transaction(); txn.begin(); try { Student myStudent = (Student)db.lookup("myName"); System.out.println(myStudent); } catch (Exception exc) { txn.abort(); // Sperre freigeben, weil Objekt nicht da ist throw exc; // Ausnahme an Aufrufumgebung melden } txn.commit(); // T war o.K. } public static void main(String[] args) throws ODMGException { Database db = Database.open("poet://LOCAL/my_base1", Database.openReadWrite); try { holeObjekt(db); } finally { db.close(); } } import COM.POET.odmg.*; import java.util.*; public class Bind { static void binde(Database db) throws ODMGException { Transaction txn = new Transaction(); txn.begin(); try { Student myStudent = new Student("Mike","Lieb",Inf,32); db.bind(myStudent, "myName"); } catch (Exception exc) { txn.abort(); throw exc; } txn.commit(); // Erfolgreiche Transaktion } public static void main(String[] args) throws ODMGException { Database db = Database.open("poet://LOCAL/my_db", Database.openReadWrite); // try {binde(db);} finally { db.close(); } // DB wir geschlossen } JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich E N D E