JDBC. Udo Kelter

Größe: px
Ab Seite anzeigen:

Download "JDBC. Udo Kelter"

Transkript

1 JDBC Udo Kelter Zusammenfassung dieses Lehrmoduls JDBC (Java Database Connectivity) ist eine Schnittstelle, über die von Java-Programmen aus auf die Inhalte relationaler Datenbanken zugegriffen werden kann. Dieses Lehrmodul stellt die wichtigsten Funktionen vor. Insb. wird die Frage beantwortet, wie mit einer typsicheren Sprache wie Java die Ergebnisse von Abfragen, deren Typ man nicht statisch bestimmen kann, verarbeitet werden können. Vorausgesetzte Lehrmodule: obligatorisch: Einführung in SQL Stoffumfang in Vorlesungsdoppelstunden: 1.0 1

2 JDBC 2 Inhaltsverzeichnis 1 Motivation 3 2 Aufbau einer Verbindung zum Datenbankserver JDBC-Treiber laden Connection-Objekt erzeugen SQL-Statements SQL-Statement-Objekte erzeugen executeupdate executequery ResultSets ResultSet als lineare Liste Cursors (Positionsmarken) Positionierbare ResultSets Auslesen eines Tupels Automatisch aktualisierte ResultSets Änderbare ResultSets Motivation Ändern eines Tupels Löschen von Tupeln Einfügen von Tupeln Vorübersetzte Statements 12 7 Fehlerbehandlung 14 Index Dieser Text darf für nichtkommerzielle Nutzungen als Ganzes und unverändert in elektronischer oder gedruckter Form beliebig weitergegeben werden und in WWW-Seiten, CDs und Datenbanken aufgenommen werden. Jede andere Nutzung, insb. die Veränderung und Überführung in andere Formate, bedarf der expliziten Genehmigung. Die jeweils aktuellste Version ist über erreichbar.

3 JDBC 3 1 Motivation Viele einfache ad-hoc-abfragen zu einer bestehenden relationalen Datenbank können mit wenigen Abfragen über einen interaktiven Kommandointerpreter, den jedes DBMS-Produkt mitliefert, erledigt werden. Für komplexere Abfragen und erst recht umfängliche Änderungen von Daten in einer Datenbank ist eine derartige interaktive, also manuelle Vorgehensweise nicht geeignet. Stattdessen sollte bzw. muß von einem (laufenden) Programm aus auf die Datenbank zugegriffen werden. Hierbei treten folgende Detailprobleme auf: Aufbau und Überwachung einer Verbindung zum Datenbankserver die Konversion von Daten in der Datenbank in den Laufzeitobjekten der jeweiligen Programmiersprache und umgekehrt. In der Regel weisen die Typsysteme der Datenbank und der Programmiersprache erhebliche Unterschiede auf. Besonders schwierig ist speziell für Abfragen die Entwicklung einer Laufzeit-Datenstruktur, die die zurückgelieferte (Ergebnis-) Relation implementieren kann. die Gestaltung geeigneter und leicht nutzbarer APIs für sämtliche SQL-Kommandos die Fehlerbehandlung. Im Prinzip kann z.b. bei der üblichen Prozeßarchitektur von DBMS-Laufzeitumgebungen jederzeit die Verbindung zum DBMS-Serverprozeß gestört sein. Fast alle vorstehenden Detailprobleme müssen spezifisch für die jeweilige Programmiersprache gelöst werden. Daher existieren für die gängigen Programmiersprachen jeweils eigene Anbindungen, um von Programmen in dieser Sprache auf eine relationale Datenbank zugreifen zu können. Man kann ganz grob zwei Arten von Anbindungen unterscheiden: reine APIs bzw. Bibliotheken: die Bibliotheken werden zu dem Programm, das eine Datenbank benutzt, nach dessen Kompilierung hinzugebunden. Die Funktionen der Bibliothek werden durch manuell erstellte Aufrufe benutzt. Derartige APIs werden auch als

4 JDBC 4 Treiber (driver) bezeichnet, in Analogie zum Anschluß von Plattenlaufwerken. Ein Entwickler hat hier viele Gestaltungsmöglichkeiten, muß sich aber auch um viele Details kümmern. Präprozessoren und automatisierte Konversionen: Die Konversion von Daten und andere Details werden hier durch einen Präprozessor automatisiert, der insb. die Datenstrukturen analysiert, die persistent gemacht werden sollen, und entsprechende Tabellen definiert und API-Aufrufe generiert. Auf der einen Seite wird hier viele manuelle Programmierung vermieden, andererseits muß man i.d.r. zunächst ein komplexes Framework verstehen. In diesem Lehrmodul stellen wir ein API für die Sprache Java vor, JDBC. JDBC (Java Database Connectivity) ist... the industry standard for database-independent connectivity between the Java programming language and a wide range of SQL databases and other tabular data sources, such as spreadsheets or flat files. 1 2 Aufbau einer Verbindung zum Datenbankserver 2.1 JDBC-Treiber laden Ein Datenbankprodukt, das JDBC unterstützt, muß eine eigene Implementierung des APIs mitliefern. Dieser Treiber wird identifiziert durch Paket- und Klassennamen, beispielsweise: org.postgresql.driver. Der Treiber muß als erstes zum Benutzerprogramm hinzugebunden und geladen werden, und zwar mit einem Kommando der Form Class.forName(driver class);. Beispiel: Class.forName("org.postgresql.Driver"); 1 Quelle:

5 JDBC Connection-Objekt erzeugen Damit das laufende Applikationsprogramm mit dem DBMS-Serverprozeß kommunizieren kann, muß eine Kommunikationsverbindung zwischen beiden Prozessen hergestellt werden. Zur Laufzeit werden solche Verbindungen durch Connection-Objekte repräsentiert. Deklariert wird eine derartiges Objekt wie folgt Connection con = null; Um die Verbindung tatsächlich aufzubauen, muß die Operation getconnection benutzt werden, die der DriverManager zur Verfügung stellt. Muster: con = DriverManager.getConnection(db, user, passw); Die Parameter von getconnection sind wie folgt anzugeben: db user Die Datenbank ist in folgender Syntax anzugeben: protokoll://rechnername/dateipfad Beispiel: jdbc:postgresql://pi81.informatik.uni-siegen.de/dbs1 Dieses Beispiel zeigt, daß Protokolle aufeinander aufbauen können. Oft wird z.b. ein Java-API auf Basis eines schon existierenden C-APIs implementiert. Benutzername passw Passwort Wenn die Operation getconnection erfolgreich ausgeführt wurde, kann anschließend auf die Datenbank zugegriffen werden. 3 SQL-Statements 3.1 SQL-Statement-Objekte erzeugen Letztlich will man SQL-Kommandos ausführen. Hierzu müssen zunächst Objekte erzeugt werden, die die SQL-Kommandos repräsentieren. Diese Objekte haben den vordefinierten Typ Statement. Hierbei sind mehrere Schritte zu trennen:

6 JDBC 6 1. ein Statement-Objekt erzeugen und initialisieren 2. eine Anweisung eintragen 3. die enthaltene Anweisung ausführen (ggf. mehrfach) Ein Statement-Objekt kann mit der Operation createstatement erzeugt und initialisiert werden: Statement stmt; stmt = con.createstatement(); Im Zustand des Statement-Objekts ist vermerkt, zu welcher Verbindung es gehört. Daher braucht die Verbindung nicht mehr jedesmal erneut angegeben zu werden. Mit einem initialisierten Statement-Objekt können nun beliebige SQL-Kommandos durchgeführt werden. Im einfachsten Fall wird das SQL-Kommando textuell als Argument übergeben und ausgeführt. Wegen der unterschiedlichen Rückgaben sind hier zwei Fälle zu unterscheiden: Abfragen: Zurückgeliefert wird hier eine Tabelle. Dementsprechend gibt es eine Operation zur Ausführung einer Abfrage, die eine Tabelle liefert (executequery). Alle anderen SQL-Kommandos: Diese sind mit der Operation executeupdate durchzuführen. 3.2 executeupdate executeupdate ist für alle SQL-Kommandos zu benutzen, die eine Datenbank ändern (insb. create table, insert, delete,...). Die Syntax ist: int executeupdate(string sql) Beispiel: int num = stmt.executeupdate("insert..."); executeupdate liefert einen Integer-Wert zurück, der bestimmte Informationen über das Ausführungsergebnis darstellt:

7 JDBC 7 ggf. die Zahl der eingefügten / gelöschten / geänderten Tupel 0 bei create table und u.ä. Kommandos 3.3 executequery In JDBC ist eine Tabelle durch die Klasse ResultSet implementiert. executequery liefert daher einen solchen ResultSet. Beispiel: ResultSet result = stmt.executequery("select..."); Es gibt mehrere Arten von ResultSets, die wir i.f. vorstellen. 4 ResultSets 4.1 ResultSet als lineare Liste Eine Tabelle ist konzeptuell betrachtet eine Kollektion von Tupeln. Es gibt unterschiedliche Methoden, Kollektionen zu implementieren. Die einfachste Form ist eine lineare Liste, dies ist auch das Standardverhalten von executequery. D.h. das Java-Kommando ResultSet result = stmt.executequery("select..."); erzeugt eine lineare Liste (wozu der Name ResultSet nicht so ganz paßt) von Tupeln (rows). Lineare Listen kann man jeweils nur sequentiell von vorne bis zum Ende durchlaufen. Die Klasse ResultSet bietet hierzu die Operation next an. Beispiel: while(result.next()) { verarbeite aktuelles Tupel } 4.2 Cursors (Positionsmarken) Jeder ResultSet hat als Teil seines Zustands einen Cursor, also eine aktuelle Position in der Liste. Gedanklich besteht die Menge der Cursorpositionen aus den Positionen zwischen zwei aufeinanderfolgenden Tupeln und der Position vor dem ersten und nach dem letzten Tupel. Bei n Tupeln im ResultSet gibt es also n + 1 Cursorpositionen; diese sind von 0 bis n durchnumeriert.

8 JDBC 8 Initial steht der Cursor vor dem ersten Tupel. Die Operation next bezieht sich implizit auf den Cursor des ResultSets. Der Haupteffekt von next besteht darin, den Cursor eine Position weiter zu verschieben. Aktuelles Tupel. Für jede Cursorposition p > 0 ist ein aktuelles Tupel definiert, und war das Tupel, das sozusagen zwischen den Cursorpositionen p 1 und p steht. Die Tupel eines ResultSets sind auf diese Weise von 1 bis n durchnumeriert. Nur auf das aktuelle Tupel kann zugegriffen werden, hierauf gehen wir später genauer ein. 4.3 Positionierbare ResultSets Wenn man ein Abfrageergebnis nur unverändert ausgibt, reicht eine lineare Liste völlig aus. Wenn man hingegen den ResultSet wiederholt durchsuchen muß oder einzelne Tupel z.b. anhand ihrer Positionsnummer direkt lokalisieren will, ist eine wiederholte lineare Suche ineffizient. Statt als lineare Liste können ResultSets daher als beliebig positionierbare ( scrollbare ) Kollektion erzeugt werden; hierzu ist in der Operation createstatement das Argument ResultSet. TYPE SCROLL INSENSITIVE anzugeben. Beispiel: stmt = con.createstatement( ResultSet.TYPE_SCROLL_INSENSITIVE); result = stmt.executequery("select..."); Für einen solchen positionierbaren ResultSet stehen diverse Positionierungsoperationen, und zwar 2 : relative Veränderungen der aktuellen Cursorposition: next(), previous(), relative(int) 2 Details s. JDBC-Tutorial, Abschnitt Cursors /tutorial/jdbc/basics/retrieving.html#cursors bzw. Spezifikation der Klasse ResultSet

9 JDBC 9 absolute Veränderungen: first(), beforefirst(), last(), afterlast(), absolute(int) Mit der Operation int getrow() kann die Nummer der aktuellen Cursorposition bestimmt werden. Mit absolute(int) kann man später zu dieser Cursorposition zurückkehren. 4.4 Auslesen eines Tupels Man steht beim Zugriff von Programmen auf Datenbanken vor dem generellen Problem, daß die Typwelten, insb. die elementaren Datentypen und die Typkonstruktoren, nicht übereinstimmen. Im Fall von Java ist hier zusätzlich relevant, daß Java grundsätzlich als typsichere Sprache gestaltet ist, d.h. der Typ von Objekten kann bereits beim Compilieren bestimmt werden, was extreme softwaretechnische Vorteile bei der Identifikation von Fehlern bietet. Im krassen Widerspruch dazu steht die geringe Typsicherheit von SQL. Die Abfrage SELECT * FROM r liefert eine Tabelle eines Typs, der erst zur Laufzeit bestimmt werden kann. Weiterhin sind diverse Detailinformationen über die Datentypen der Spalten einer Tabelle aus den Abfragen nicht erkennbar. Beispielsweise kann der Compiler bei einer Abfrage executequery("select A FROM r") statisch nicht wissen, welchen Typ die Spalte A hat. Noch weniger weiß der Compiler, wenn der String, der die Abfrage definiert, dynamisch erzeugt wird und von vorherigen interaktiven Eingaben abhängt. Daher muß letzten Endes ein Entwickler explizit angeben, welche Typen die Spalten eines zurückgelieferten ResultSets haben. Technisch wird dieses Problem dadurch gelöst, daß die Attribute des aktuellen Tupels einzeln durch typspezifische Kopieroperationen gelesen und z.b. auf Laufzeitvariablen übertragen werden. Die Operationsnamen dieser Kopieroperationen haben die Form getxxx, worin XXX ein Typname ist, z.b. getint, getstring usw. Eigenschaften dieser Operationen: Sie beziehen sich auf das aktuelle Tupel.

10 JDBC 10 Sie lesen den Wert eines Attributs des aktuellen Tupels. Sie liefern einen Wert vom Typ XXX zurück. Hierbei werden ggf. Werte implizit konvertiert(!), was u.u. nicht beabsichtigt war. Als Entwickler muß man also den Typ des Attributs kennen und die passende get-operation benutzen. Für alle get-operationen existieren jeweils zwei Varianten, wie das gewünschte Attribut identifiziert wird: getxxx(string): anhand des Namens getxxx(int): anhand der Position (1,...) Beispiele: name = result.getstring("vorname"); plz = result.getint(5); Alle get-operationen sind in der Spezifikation der Klasse Result- Set genauer beschrieben. 4.5 Automatisch aktualisierte ResultSets Wenn ein ResultSet nach den bisherigen Verfahren durch ein executequery erzeugt wird, ist sein Inhalt eine Kopie der Daten aus der DB zum Zeitpunkt der Abfrage. Wenn sich die Datenbank danach ändert, bleibt der ResultSet unverändert, d.h. der ResultSet gibt ggf. den aktuellen Stand der Daten nicht mehr richtig wieder. In vielen Fällen ist es wünschenswert, daß der ResultSet sich automatisch an Änderungen in der Datenbank anpaßt. Die Lösung dieses Problems sind sensitive ResultSets, die mit dem Argument ResultSet. TYPE SCROLL SENSITIVE in der Operation createstatement erzeugt werden. Beispiel: stmt = con.createstatement( ResultSet.TYPE_SCROLL_SENSITIVE); result = stmt.executequery("select...");

11 JDBC 11 5 Änderbare ResultSets 5.1 Motivation Die bisher eingeführten ResultSets waren unveränderlich, es sind nur lesende Operationen erlaubt. Oft wäre es aber praktisch, einen Result- Set zu durchlaufen und dabei bestimmte Attribute einzelner oder aller Tupel sofort nach dem Lesen zu verändern. Theoretisch kann man für jede einzelne Änderung ein update-kommando mit executeupdate durchführen. Dies wäre allerdings sehr umständlich und ineffizient. Eine elegantere Lösung sind änderbare ResultSets 3. Um einen änderbaren ResultSet zu erzeugen, ist die Operation createstatement mit dem Argument ResultSet.CONCUR UPDATABLE aufzurufen. Beispiel: stmt = con.createstatement( ResultSet.CONCUR_UPDATABLE); result = stmt.executequery("select..."); 5.2 Ändern eines Tupels In einem änderbaren ResultSet können die Attribute des aktuellen Tupels mit updatexxx-operationen verändert werden, z.b. updateint, updatestring usw. Diese sind analog zu den getxxx-operationen konzipiert. Eigenschaften der updatexxx- Operationen: Sie beziehen sich implizit auf das aktuelle Tupel. XXX ist ein Typname. Der 1. Parameter ist der Name (Typ: string) oder die Nummer (Typ: integer) des gewünschten Attributs. Der 2. Parameter ist vom Typ XXX, er enthält den neuen Wert des Attributs. Auch hier werden ggf. Werte implizit konvertiert, was u.u. nicht beabsichtigt war. Der Rückgabewert ist void. 3 Nach einer Änderung ist der Begriff ResultSet eigentlich nicht mehr korrekt.

12 JDBC 12 Beispiele: result.updatestring("vorname", "Hans"); result.updateint(5,57076); Alle update-operationen sind in der Spezifikation der Klasse ResultSet beschrieben. Die Änderungen einzelner Attribute werden nicht sofort in die Datenbank übertragen, sondern nur gesammelt pro Tupel mit der Operation updaterow(). 5.3 Löschen von Tupeln Die Operation deleterow() löscht das aktuelle Tupel im ResultSet und in der Datenbank. 5.4 Einfügen von Tupeln Das Einfügen von Tupeln in einen ResultSet wird durch eine spezielle zusätzliche Cursorposition und ein zugehöriges virtuelles Einfüge- Tupel ( insert row ) unterstützt. Zunächst muß man mit der Operation movetoinsertrow() den Cursor auf das Einfüge-Tupel setzen: result.movetoinsertrow(); Danach kann man mit den update-operationen Attribute dieses Tupels ändern. Wenn man damit fertig ist, fügt man mit der Operation insertrow() das neue Tupel in den ResultSet und in die Datenbank ein: result.insertrow(); Danach kann man mit der Operation movetocurrentrow() den Cursor wieder an die Stelle zurücksetzen, den er vor Ausführung des movetoinsertrow() hatte. 6 Vorübersetzte Statements Wenn man viele Daten ändert, sind änderbare ResultSets i.d.r. die beste Methode. Änderbare ResultSets werden aber nicht von allen Systemen unterstützt, dann bleibt nichts anderes übrig als mit einzelnen

13 JDBC 13 Änderungskommandos zu arbeiten. Dies ist relativ rechenaufwendig, weil bei der Übersetzung des Kommandotextes jedesmal erneut alle üblichen Prüfungen auf korrekte Syntax, Vorhandensein der Bezeichner usw. durchgeführt werden müssen. Dieser Aufwand ist vermeidbar, wenn immer wieder fast das gleiche SQL-Kommando ausgeführt wird, und zwar mithilfe vorübersetzter Statements (Prepared Statements). Ein vorübersetzbares Statement ist ein Kommando-Text, der an den Stellen, wo ein Eingabeparameter (ein Bezeichner oder eine Konstante) erwartet wird, ein Fragezeichen enthält. Man kann dies auch als eine Funktionsdeklaration betrachten, jedes Fragezeichen steht für einen Parameter. Beispiel: String insertcmd = "INSERT INTO lieferungen " + "(Kundennummer, Lieferadresse, Betrag, Datum) " + "VALUES (?,?,?, )"; In diesem Beispiel wird die Eintragung mehrerer Lieferungen am in die Relation lieferungen vorbereitet. Vorübersetztende Statements werden in 3 Phasen definiert und ausgeführt: 1. Der vorzuübersetzende Text wird mit der Operation preparestatement übersetzt, zurückgeliefert wird ein Objekt vom Typ PreparedStatement. Beispiel: PreparedStatement psinsertlfg; psinsertlfg = con.preparestatement(insertcmd); 2. Die offenen Stellen, sozusagen die Parameter des PreparedStatements, werden gefüllt, s.u. 3. Nach Setzen der Werte aller Parameter wird das vervollständigte PreparedStatement mit der Operation executeupdate ausgeführt. Beispiel: psinsertlfg.executeupdate(); Setzen der Parameter eines PreparedStatements. Hierzu dienen setxxx-kommandos, die für Objekte des Typs Preparedc 2016 Udo Kelter Stand:

14 JDBC 14 Statement definiert sind. Analog wie bei den getxxx-kommandos steht XXX auch hier wieder für einen elementaren Datentyp. Die setxxx-kommandos haben 2 Parameter: 1. die Nummer des offenen Eingabeparameters 2. den zu benutzenden Wert, der vom Typ XXX sein muß Beispiele: psinsertlfg.setint (1, ); psinsertlfg.setstring (2, "Bahnhofstr. 55"); Weitere Details s. 7 Fehlerbehandlung Wie schon früher erwähnt sind bei jedem Datenbankzugriff prinzipiell immer Fehler möglich, z.b. Syntaxfehler oder der Verlust der Verbindung zum DBMS-Serverprozeß. Alle Datenbankzugriffe müssen daher selbst bei ersten Übungsaufgaben in try/catch-blöcken gekapselt werden. Eine detaillierte Behandlung aller Fehlerursachen ist relativ aufwendig und kann ggf. Teile der Applikationslogik beinhalten. Bei ersten Übungen kann man auf eine detaillierte Fehlerbehandlung zunächst verzichten. Alle SQL-Zugriffsoperationen werfen Exceptions vom Typ SQLException. Über diese exception-objekte können diverse Informationen über die Art des Fehlers herausgefunden werden. Die Klasse SQLException bietet hierzu folgende Operationen an: getmessage() liefert eine verbale Beschreibung des Fehlers getsqlstate() liefert einen Fehlercode gemäß dem ANSI- bzw. ISO- Standard geterrorcode() liefert einen herstellerspezifischen Fehlercode, dessen Bedeutung in der Produktdokumentation definiert sein muß. Bei einen Datenbankzugriff können i.a. mehrere SQLExceptions

15 JDBC 15 auftreten. Deren Abhängigkeitsstruktur kann mit Hilfe der Operation getcause() abgefragt werden. Warnungen. Neben Fehlern können Datenbankzugriffe auch Warnungen produzieren. Während ein Fehler die nicht erfolgreiche Ausführung eines SQL-Kommandos anzeigt und ggf. zu einem Programmabbruch führt, treten Warnungen auch bei einer erfolgreichen Ausführung des Kommandos auf. Beispielsweise kann bei einer Konversion von Datenwerten ein Rundungsfehler aufgetreten sein. Warnungen müssen mit der Operation getwarnings abgerufen werden. Diese Operation ist u.a. für die Klassen Connection, Statement, PreparedStatement und ResultSet definiert, also bei allen Objekten aufrufbar, die Ergebnis von Datenbankzugriffen sind. Analog zu Fehlern sind Informationen über die Warnung abrufbar, und ein Datenbankzugriff kann mehrere Warnungen verursachen. Weitergehende Informationen SQLExceptions bzw. Warnungen s. u.a. zum Auslesen der Liste der

JDBC (Stichworte) Udo Kelter

JDBC (Stichworte) Udo Kelter JDBC (Stichworte) Udo Kelter 19.12.2011 Zusammenfassung dieses Lehrmoduls JDBC (Java Database Connectivity) ist eine Schnittstelle, über die von Java-Programmen aus auf die Inhalte relationaler Datenbanken

Mehr

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql JDBC inoffizielle Abkürzung für: Java Database Connectivity seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql ist eine Menge von Klassen und Methoden, um aus Java-Programmen relationale Datenbanken

Mehr

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit

Mehr

Willkommen. Datenbanken und Anbindung

Willkommen. Datenbanken und Anbindung Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

Datenbankzugriff mit JDBC

Datenbankzugriff mit JDBC Java: Kapitel 8 Datenbankzugriff mit JDBC Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 8 Einführung in SQL und JDBC Verbindung zur Datenbank

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Sommersemester 2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 10. Java: Datenhaltung mit Datenbanken 1 Datenbank-Programme Derby (Hersteller: Apache

Mehr

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen Datenbankentwurf & Datenbankzugriff mit JDBC Georg Köster Sven Wagner-Boysen 6. November 2007 Gliederung 2 Datenbankentwurf für ProminentPeople.info ER-Modell Relationaler Entwurf Normalisierung Datenbankzugriff

Mehr

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 9 Embedded SQL Vorlesung Datenbanken 1 Embedded SQL (siehe auch [Date00]) Arbeitsweise ähnlich PL/SQL, allerdings: Normale Programmiersprache mit eingestreuten SQL-Befehlen und anderen Befehlen

Mehr

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Datenbanksysteme Programmieren von Datenbankzugriffen mit JDBC Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2018 Übersicht Architektur von JDBC Ziele von JDBC Grundstruktur

Mehr

Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6

Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez. 2011 Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6 Datenbanksysteme I Aufgabe 1: Deklarative Änderungsoperationen

Mehr

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008 Programmieren II Datenbanken Dr. Klaus Höppner SQL Hochschule Darmstadt SS 2008 JDBC 1 / 20 2 / 20 Relationale Datenbanken Beispiele für RDBMS Ein Datenbanksystem ist ein System zur Speicherung von (großen)

Mehr

Praktikum Datenbanksysteme

Praktikum Datenbanksysteme Praktikum Datenbanksysteme Herbstsemester 2012 Dr. Andreas Geppert Platform Architecture Technology Infrastructure Services Credit Suisse geppert@acm.org Herbstsemester 2012 Slide 1 Themenübersicht konzeptueller

Mehr

Java Database Connectivity. Gracin Denis, IB 4 C

Java Database Connectivity. Gracin Denis, IB 4 C Java Database Connectivity Gracin Denis, IB 4 C Agenda 1. JDBC-Architektur 2. Treiber der JDBC 2.1 Typ-1 Treiber 2.2 Typ-2 Treiber 2.3 Typ-3 Treiber 2.4 Typ-4 Treiber 3. Verbindungsablauf 4. Connection

Mehr

Datenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21

Datenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 21 Datenbanken SQL JDBC 2 / 21 Relationale Datenbanken Ein Datenbanksystem ist ein System zur Speicherung von (großen) Datenmengen:

Mehr

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher

Mehr

Java: MySQL-Anbindung mit JDBC.

Java: MySQL-Anbindung mit JDBC. Java: MySQL-Anbindung mit JDBC Vorarbeiten Wir brauchen: - MySQL-Server - JDBC-Treiber - (Import java.sql.*) Vorarbeiten MySQL-Server in unserem Falle: WAMP (= Apache) (runterladen, installieren, starten)

Mehr

Kurzübersicht JDBC. Marc Monecke. monecke@informatik.uni-siegen.de. 15. Januar 2003

Kurzübersicht JDBC. Marc Monecke. monecke@informatik.uni-siegen.de. 15. Januar 2003 Kurzübersicht JDBC Marc Monecke monecke@informatik.uni-siegen.de 15. Januar 2003 Zusammenfassung Über JDBC-Schnittstellen können Anwendungsprogramme auf Datenbanken zugreifen, ohne daß dabei hersteller-

Mehr

Datenbanken SQL-Grundlagen JDBC SQL-Constraints. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Datenbanken SQL-Grundlagen JDBC SQL-Constraints. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011 Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 Datenbanken 2 SQL-Grundlagen 3 JDBC 4 SQL-Constraints Relationale Datenbanken Ein Datenbanksystem ist ein System zur Speicherung

Mehr

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften JAVA Weiterführende Spracheigenschaften 100 AGENDA Strings Exceptions Enums Generics Lambdas & Methods Bulk-Operations 101 DIE KLASSE STRING Zeichenketten werden in Java als String repräsentiert Wie der

Mehr

Oracle & Java HOW TO

Oracle & Java HOW TO Oracle & Java HOW TO Helge Janicke, Niels-Peter de Witt, Karsten Wolke 21. Januar 2002 Inhaltsverzeichnis 1 Java-Anbindung an Oracle-DB 2 2 Benötigte Programme und Daten 2 3 Einbinden der Klassen 2 4 Aufbau

Mehr

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren DB-Programmierung Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele static SQL verstehen Build-Prozess / Art des Datenzugriffs Host-Variablen Vor- / Nachteile dynamic SQL verstehen

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java und Datenbanksysteme Datenbankanbindung mit JDBC Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für

Mehr

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011.

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Datenbanken SQL-Grundlagen JDBC SQL-Constraints 2 / 26 Relationale Datenbanken Ein Datenbanksystem ist ein System zur

Mehr

Datenbanksysteme I Übung: JDBC. Jana Bauckmann

Datenbanksysteme I Übung: JDBC. Jana Bauckmann Datenbanksysteme I Übung: JDBC Jana Bauckmann Wo reicht SQL alleine nicht? 2 Web-Anwendungen Daten übersichtlich und schön präsentieren Komplizierte Fragestellungen Sind sich 2 Tupel ähnlich? Duplikaterkennung

Mehr

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

Mehr

Klausur Datenbanken II

Klausur Datenbanken II Klausur Datenbanken II 8.3.2001 Name Vorname Semester Matrikelnr Aufgabe Punkte maximal 1 8 2 8 3 3 4 3 5 4 6 6 7 6 8 6 9 [Zusatz] [4] Summe 44 Punkte erreicht Bitte geben Sie die Lösungen möglichst direkt

Mehr

Der Einsatz von SELECT from INSERT auf dem System i

Der Einsatz von SELECT from INSERT auf dem System i Zwei Operationen werden zu einer neuen Funktion von Jinmei Shen und Karl Hanson INSERT und SELECT waren vor V6R1 in DB2 für i5/os zwei getrennte Operationen. Um eingefügte Spaltenwerte abzufragen, konnte

Mehr

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

Ausgewählte Implementierungsprobleme

Ausgewählte Implementierungsprobleme Ausgewählte Implementierungsprobleme Rebecca Tiarks 22. Januar 2009 1 / 50 Inhaltsverzeichnis 1 2 / 50 Datenbanken Sammeln, Zugreifen und Verwalten von Daten in der Computerwelt geschieht das mit Datenbanken

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist herstellerabhängig

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1 Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1 Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist Herstellerabhängig

Mehr

Datenbanksysteme I Datenbankprogrammierung. 15.6.2009 Felix Naumann

Datenbanksysteme I Datenbankprogrammierung. 15.6.2009 Felix Naumann Datenbanksysteme I Datenbankprogrammierung 15.6.2009 Felix Naumann SQL mit einer Programmiersprache verbinden 2 Embedded SQL Kombiniert SQL mit 7 Programmiersprachen ADA, C, Cobol, Fortran, M, Pascal,

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

JDBC. Java DataBase Connectivity

JDBC. Java DataBase Connectivity JDBC Java DataBase Connectivity JDBC-Schichten JDBC besteht aus 2 Teilen, 1. aus Datenbanktreibern, die den Anschluß von Java-Anwendungen an Datenbanksysteme wie Sybase, DB/2, Oracle, MS ACCESS oder Mini

Mehr

vs. Fehler zur Übersetzungszeit

vs. Fehler zur Übersetzungszeit Client-Server-Architektur, Anbindung von Programmiersprachen, Call-Level-Schnittstellen: /, JDBC, :, J, gespeicherte Prozeduren, prozedurale Erweiterungen: /PSM, PL/. IPD, Forschungsbereich Systeme der

Mehr

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

GML und Bibliothek oracle.sdoapi

GML und Bibliothek oracle.sdoapi GML und Bibliothek oracle.sdoapi Nachfolgend werden die Java-Klassen aus dem GML-Kapitel unter Verwendung der alten Klassenbibliothek oracle.sdoapi dargestellt. Erzeugung von GML 3.1 aus SDO_GEOMETRY-Objekten

Mehr

Musterlösung Übungsblatt 11

Musterlösung Übungsblatt 11 Julia Wolters Abgabe: 06.07.2009 Aufgabe 41 1 Aufgabe 41 2 3 CREATE TABLE auftraege ( 4 anfang TIMESTAMP NOT NULL, 5 ende TIMESTAMP, 6 kunde VARCHAR, 7 beschreibung VARCHAR, 8 PRIMARY KEY ( anfang, kunde,

Mehr

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

1a) SQL Stored Procedure via IDs

1a) SQL Stored Procedure via IDs 1a) SQL Stored Procedure via IDs Erstellen Sie analog zu Aufgabe 2d) des ersten Übungsblatts eine SQL Stored Procedure, welche den Freundschaftsgrad zweier Benutzer eines sozialen Netzwerks aktualisiert.dazu

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist Herstellerabhängig

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Datenschutz: Zugriffsrechte in SQL

Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 20. November 2015 Betriebssysteme / verteilte

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Datenbank und Informationssysteme

Datenbank und Informationssysteme Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7 Aufgabe 2 + 3: Datenbanksysteme I import java.sql.*; import oracle.jdbc.driver.*;

Mehr

RELATIONONALE DATENBANKEN MIT JDBC

RELATIONONALE DATENBANKEN MIT JDBC RELATIONONALE DATENBANKEN MIT JDBC Christoph Süsens 07.05.2012 Inhalt Abbildungsverzeichnis...3 Java Database Connection JDBC...4 Herstellen einer Verbindung JDBC - DBMS...4 Treiber Installation Beispiel:

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2017/2018 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 14. September 2017 Betriebssysteme / verteilte

Mehr

Kapitel 11: Anwendungsentwicklung

Kapitel 11: Anwendungsentwicklung Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2015/2016 Kapitel 11: Anwendungsentwicklung Vorlesung:

Mehr

JDBC Datenzugriff aus Java ETIS SS04

JDBC Datenzugriff aus Java ETIS SS04 JDBC Datenzugriff aus Java ETIS SS04 Gliederung Motivation Bestandteile Fehlerbehandlung Metadaten Zusammenfassung JDBC 2 Motivation(I) Standard für Zugriff auf Datenquellen aus Java- Anwendungen RDBs,

Mehr

11 Anwendungsprogrammierung

11 Anwendungsprogrammierung 11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:

Mehr

Datentypen. strukturierte. elementare. skalare reelle statische dynamische int. list. real float. set. record. inhomogen. homogen

Datentypen. strukturierte. elementare. skalare reelle statische dynamische int. list. real float. set. record. inhomogen. homogen Datentypen elementare strukturierte skalare reelle statische dynamische int real float list homogen set inhomogen record Der elementare Datentyp nat bestehend aus einer Objektmenge und den darauf definierten

Mehr

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D. 1 Copyright 1996-1997 by Axel T. Schreiner. All Rights Reserved. 7 Datenbankzugriff Prinzip Dieser Abschnitt beschäftigt sich mit dem Paket java.sql, das eine SQL-Schnittstelle für Java verkapselt. Java-Programme

Mehr

10.4 Konstante Objekte

10.4 Konstante Objekte 10.4 Konstante Objekte Genau wie bei einfachen Datentypen (int,double,...) kann man auch Objekte als const deklarieren. Eine solche Deklaration bedeutet, daß alle Attribute so behandelt werden, als wären

Mehr

Datenbanksysteme I. Aufgabe 1: Views und Temporäre Relationen. Lösungsvorschlag:

Datenbanksysteme I. Aufgabe 1: Views und Temporäre Relationen. Lösungsvorschlag: Universität Augsburg, Institut für Informatik Wintersemester 2010/2011 Prof. Dr. W. Kießling 10. Dez. 2010 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 6 Aufgabe 1: Views und Temporäre Relationen Datenbanksysteme

Mehr

Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt.

Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt. 432 433 434 435 Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt. 436 437 438 439 440 441 442 443 Die verkürzte

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock Übung Datenbanksysteme I JDBC Thorsten Papenbrock Motivation: Grenzen von SQL 2 1. Bedingte Anweisungen Erhöhe das Gehalt eines Arbeitsnehmers um 2%, falls er eine Belobigung erhalten hat 2. Darstellung

Mehr

Kapitel 11: Anwendungsentwicklung

Kapitel 11: Anwendungsentwicklung Skript zur Vorlesung Wintersemester 2005/2006 Kapitel 11: Anwendungsentwicklung Vorlesung: Dr. Matthias Schubert Übungen: Elke Achtert, Arthur Zimek Skript 2004 Christian Böhm http://www.dbs.informatik.uni-muenchen.de/lehre/dbs

Mehr

Übung Datenbanksysteme I Embedded SQL, Stored Procedures, JDBC

Übung Datenbanksysteme I Embedded SQL, Stored Procedures, JDBC Übung Datenbanksysteme I G-3.1.09, Campus III Hasso Plattner Institut Motivation Grenzen von SQL 1. Bedingte Anweisungen Erhöhe das Gehalt eines Arbeitsnehmers um 2%, falls er eine Belobigung erhalten

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6 - Musterlösung

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6 - Musterlösung WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 05.12.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 - Musterlösung Aufgabe 21 * (Objektrelationale

Mehr

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock Übung Datenbanksysteme I JDBC Thorsten Papenbrock Motivation: Grenzen von SQL 2 1. Bedingte Anweisungen Erhöhe das Gehalt eines Arbeitsnehmers um 2%, falls er eine Belobigung erhalten hat 2. Darstellung

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

Universität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 28. Nov. 2014 F. Wenzel, L. Rudenko Lösungsblatt 6

Universität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 28. Nov. 2014 F. Wenzel, L. Rudenko Lösungsblatt 6 Universität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 28. Nov. 2014 F. Wenzel, L. Rudenko Lösungsblatt 6 Aufgabe 1: SQL: DDL und DML a) DDL: Datenbanksysteme I CREATE TABLE Bundeslaender

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Abschnitt 10: Datenstrukturen

Abschnitt 10: Datenstrukturen Abschnitt 10: Datenstrukturen 10. Datenstrukturen 10.1Einleitung 10.2 Peer Kröger (LMU München) Einführung in die Programmierung WS 16/17 829 / 867 Einleitung Überblick 10. Datenstrukturen 10.1Einleitung

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 2 Spezifikation Schrittweise Verfeinerung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69,

Mehr

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement SQL Datenmanipulation Datenmanipulationssprache Ein DML Statement wird ausgeführt wenn: neue Tupel eingefügt werden existierende Tupel geändert werden existierende Tupel aus der Tabelle gelöscht werden

Mehr

Java Database Connectivity API / JDBC

Java Database Connectivity API / JDBC Java Database Connectivity API / JDBC Motivation Design Treiber Grundlagen Metadaten Transaktionen Exceptions Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf DBMS

Mehr

Datenzugriffskomponente mit JPA 2.1

Datenzugriffskomponente mit JPA 2.1 Datenzugriffskomponente mit JPA 2.1 (Grundlagen der Java Persistence Architecture) Vladislav Faerman Gliederung Einführung Konfiguration Objekt-Relationales Mapping (ORM) mit JPA Das zentrale Konzept der

Mehr