JDBC EDV2 - 03 - JDBC.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

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.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
2. DB-API: Programmierschnittstellen zu Datenbanken
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Internet-Datenbanken
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Ausnahmen HS Merseburg (FH) WS 06/07.
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
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: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
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,
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Objekte und Arbeitsspeicher
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
DO...WHILE Anweisung.
Dynamische Webseiten Java servlets.
Datenbankanwendungen mit Java und JDBC
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.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
Transaction Script Software Component Technology for Distributed Applications.
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.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
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
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
ODBC (Open Database Connectivity)
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Wir bauen uns eine Webapplikation!
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Allgemeines zu Datenbanken
JDBC (Java DataBase Connectivity)
Optimale Ursprungsgerade
Datenbankanbindung mit
Mehrschichten- Architektur. Sinn: Zur Strukturierung von Software, die eine spätere Änderung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
JDBC1 Motivation(I) JDBC keine Abkürzung, sondern geschützter Name (inoffiziell: für Java Database Connectivity) unterschiedliche DBS haben unterschiedliche.
JDBC Java DataBase Connectivity
Implementieren von Klassen
 Präsentation transkript:

JDBC EDV2 - 03 - JDBC

JDBC : "Java Database Connectivity" JDBC stellt eine standarisierte Methode zum Zugriff auf Datenbanken aus Java-Programmen zur Verfügung. Einige Datenbanken unterstützen den JDBC-Standard direkt. Viele andere unterstützen ODBC "Open Database Connectivity". Diese können übereinen zu Java gehörigen JDBC-ODBC-Umsetzer angesprochen werden. Damit können fast alle existierenden Datenbanken direkt oder indirekt angesprochen werden. JDBC enthält Möglichkeiten: Verbindungen zu Datenbanken zu öffnen und zu schließen, SQL-Anweisungen an Datenbanken zu schicken und die Antworten entgegenzunehmen und deren Auswertung im Java-Programm zu ermöglichen. EDV2 - 03 - JDBC

JDBC baut vollständig auf SQL auf. SQL "Standard Query Language" JDBC baut vollständig auf SQL auf. SQL "Standard Query Language". Die Kommunikation zwischen dem Java-Programm und der Datenbank erfolgt über SQL-Anweisungen. Diese werden als Text an die Datenbank geschickt, die daraufhin als Antwort die Ergebnisse zurückschickt.  Die SQL-Anweisungen werden nicht vom Java-Compiler auf Korrektheit geprüft. Fehler können also erst durch die Datenbank festgestellt werden. Eine weitere Möglichkeit aus Java Datenbanken abzufragen und zu bearbeiten ist SQLJ von IBM, Oracle, Sybase, Informix u.a. SQLJ baut ebenfalls auf SQL auf. Die Anweisungen werden jedoch schon in Java geprüft. Fehler können also schon von Java erkannt werden. EDV2 - 03 - JDBC

1. Erstellen einer Datenbank Zunächst muss die Datenbank aufgebaut werden. Dazu müssen geeignete Programme genutzt werde, z.B. Access, dBase, Oracle, Sybase, Informix, DB2, Excel u.s.w. Unser Beispiel ist eine Access-Datenbank mit folgenden Tabellen: Studenten MatrikelNr, Long Integer, Primärschlüssel Name, Text Vorname, Text Veranstaltungen VeranstaltungsNr, Long Integer, Primärschlüssel Titel, Text Kurzbezeichnung, Text Semester, Text Art, Text Stunden, Integer EDV2 - 03 - JDBC

Id, Long Integer, Primärschlüssel Belegungen Id, Long Integer, Primärschlüssel MatrikelNr, Referenz auf Tabelle Studenten VeranstaltungsNr, Referenz auf Tabelle Veranstaltungen id MatrikelNr VeranstaltungsNr Belegungen Titel VeranstaltungsNr Kurzbezeichnung Semester Art Stunden Veranstaltungen EDV2 - 03 - JDBC Studenten MatrikelNr Name Vorname

2. DB in ODBC registrieren In der Systemsteuerung ODBC bzw. ODBC32 bzw. ODBC-datenquellen öffnen. Es können ODBC-Quellen registriert werden. Dabei können die Datenbanken so registriert werden, dass nur der Nutzer selber auf sie zugreifen kann (Benutzer-DSN) oder so dass alle Nutzer auch über das Netz darauf zugreifen können (system-DSN). Dabei können u.A. auch Namen und Passworte für den Zugriff festgelegt werden. Wichtig: Datenquellenname ist der Name unter dem von Java auf die Datenbank zugegriffen wird. Vorteile: Es existiert ein einheitlicher Zugriff zu allen Datenbanken. Das Java-Programm muss keine Informationen über die konkrete Datenbankdatei haben. Ohne Änderung des des Java-Programms kann die Datenbank (Art, Ort) geändert werden. EDV2 - 03 - JDBC

3. Treiber in Java laden Um vom Java-Programm auf eine Datenbank zugreifen zu können, muss ein passender Treiber geladen werden. Welcher Treiber passend ist hängt von der Datenbank und dem Betriebssystem ab. In Windows gibt es ODBC-Treiber für alle Datenbanken. Also kann in der Regel der JDBC-ODBC-Treiber von SUN verwendet werden: sun.jdbc.odbc.JdbcOdbcDriver Der Treiber braucht nur ein mal geladen zu werden und steht dann immer zur Verfügung.  Laden erfolgt in einem statischen Block einer Klasse. Laden des Treibers erfolgt z.B. mit Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Ausnahme ClassNotFoundException muss abgefangen werden. EDV2 - 03 - JDBC

public class StudentenDB { static String driv = "sun.jdbc.odbc.JdbcOdbcDriver"; try Class.forName(driv); } catch (ClassNotFoundException cnfe) System.err.println(driv+" nicht gefunden!"); System.exit(1); EDV2 - 03 - JDBC

4. Öffnen der Datenbank Zum Herstellen der Verbindung zwischen der Datenbank und dem Java-Programm stellt die Klasse DriverManager die Methode getConnection zur Verfügung. public static Connection getConnection(String url) Mit Hilfe von url wird dir zu öffnende Verbindung beschrieben. Die genaue Form hängt vom Treiber und von der Datenbank ab. url = protocol:subprotocol:database protocol = jdbc subprotocol = odbc database = StudentenDatenbank Andere Formen von getConnection erlauben die Angabe von Namen und Passwort. Die Herstellung der Verbindung muss vor jedem erneuen Zugriff geschehen. Z.B. in eine Konstruktor. Die Datenbank wird geschlossen, indem die close-Methode der Verbindung aufgerufen wird. EDV2 - 03 - JDBC

private Connection dbConn = null; private String connString = "jdbc:odbc:StudentenDatenbank"; public StudentenDB() { try { dbConn = DriverManager.getConnection(connString); } catch (SQLException sqle) { System.err.println("Fehler beim Öffnen der Verbindung "+connString); System.exit(2); public void close() { dbConn.close(); System.err.println("Fehler beim Schließen der Verbindung "+connString); System.exit(3); } } EDV2 - 03 - JDBC

5. Datenbank abfragen Abfragen erfolgen grundsätzlich mit Hilfe von SQL-Anweisungen. SQL-Anweisungen werden durch die execute-Methode eines Statement-Objektes ausgeführt. Durch die erfolgreiche Ausführung einer SQL-Anweisung wird ein ResultSet-Objekt erzeugt, das die Ergebnisse der Abfrage in Form einer Tabelle enthält. Durch die next-Methode des ResultSet-Objektes kann durch die Zeilen der Ergebnistabelle gewandert werden. Mit Hilfe der getXXX-Methoden des ResultSet-Objektes können die Elemente der Zeilen abgefragt werden. Mit Hilfe der Klasse ResultSetMetaData können Informationen über die Spalten der Tabelle (Name, Datentyp, Schreibbarkeit u.s.w.) abgefragt werden. EDV2 - 03 - JDBC

public void printContent(String table) { try { System.out.println(">>>>>>>>>>>>> "+table +" >>>>>>>>>>>>>"); Statement pC = dbConn.createStatement(); pC.execute("SELECT * FROM "+table); ResultSet res = pC.getResultSet(); ResultSetMetaData resMD = res.getMetaData(); int col = resMD.getColumnCount(); for (int i=1;i<=col;i++ ) System.out.print(resMD.getColumnLabel(i)+"\t"); System.out.println(); while (res.next()) { System.out.print(res.getString(i)+"\t"); } res.close(); catch (SQLException sqle) { System.err.println("Fehler beim Lesen der Verbindung "+connString); System.exit(4); EDV2 - 03 - JDBC