Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding."—  Präsentation transkript:

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

2 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

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

4 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

5 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

6 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:

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

8 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 ) ; } }

9 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:

10 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

11 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

12 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

13 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

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

15 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

16 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

17 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

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

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


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

Ähnliche Präsentationen


Google-Anzeigen