1 / 19

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager

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

rivka
Download Presentation

JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich • JDBC • Paket von Klassen / Interfaces • Bestandteil des JDK • direkte Nutzung von SQL • ODMG-Standard • definiert eigenes Datenmodell, Anfragesprache sowie diverse Programmiersprachenanbindungen für Objektdatenbanksysteme

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

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

  8. java.sql.Connection Erzeugen eines Statement-Objektes: JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich 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. java.sql.Statement Einfache SQL-Anfrage: JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich ResultSet executeQuery (String sql) throws SQLException; DML- oder DDL-Befehl: int executeUpdate (String sql) throws SQLException; Sequenz von SQL-Befehlen: boolean execute (String sql) throws SQLException;

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

  11. Anwendung 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(); } } JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich

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

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

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

  15. 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 JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding Anwendung Vergleich • Java-OML • Database • Transaction

  16. Beispielanwendung für POET 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 /* * 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

  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. Vergleich 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

More Related