Praktikum aus Softwareentwicklung 2, Stunde 7
|
|
- Guido Ziegler
- vor 7 Jahren
- Abrufe
Transkript
1 Praktikum aus Softwareentwicklung 2, Stunde 7 Lehrziele/Inhalt 1. Datenbanken Datenbanken Datenbanken werden in Java über JDBC (ist ein Eigenname, wird aber oft als Abkürzung von Java Database Connectivity API gesehen) angesprochen. JDBC ist eine Abstraktionsschicht über Datenbanktreibern. Ohne Abstraktion müsste man bei einem Datenbankwechsel die Anwendung umprogrammieren. Design von JDBC JDBC wird seit 1995 entwickelt, erste Überlegungen gingen in Richtung einer Spracherweiterung, diese Ideen wurden aber verworfen und eine Treiberschnittstelle für Drittanbieter gebaut. JDBC lehnt sich an ODBC an, aber im Stil von Java: ODBC hat wenige Befehle aber sehr viele Optionen, JDBC hat viele einfache Methoden. Außerdem benutzt ODBC void-zeiger und Java kennt keine Zeiger. Befehle an die Datenbank werden als String übergeben. Das erlaubt es Programmieren SQL-Befehle für eine Datenbank zu optimieren, aber man muss sich bewusst sein, dass eine solche Optimierung wieder eine Bindung an eine Datenbank bedeutet. Treiberarten in JDBC Es gibt vier Treiberarten in JDBC. Sie sind historisch bedingt: der Typ 1 Treiber ist ein Brücke von JDBC nach ODBC, vom Typ 2 ist ein Treiber wenn er aufrufe an native Treiber weiterleitet, vom Typ 3 ist ein Treiber wenn er voll in Java implementiert ist und an eine Middleware bindet und vom Typ 4 ist ein Treiber der voll in Java implementiert ist und direkt eine Datenbank ansprechen kann. Typ 1: Brücke Typ 1 die Brücke von JDBC nach ODBC war ein pragmatischer Ansatz von Sun, um vom Start weg so viele Datenbanken wie möglich anbinden zu können. Für ODBC waren damals viele Datenbanktreiber verfügbar. Nachteile dieses Ansatzes sind: die zusätzliche ODBC-Schicht kostet Leistung; höhere Wartung, es muss am Zielrechner ein ODBC-Treiber installiert und gepflegt werden. Typ 2: Partial Java Driver Gibt Aufrufe direkt an eine native Implementierung weiter. Da für Datenbanken native Treiber vorhanden waren, war dies eine Möglichkeit für Datenbank-Hersteller schnell Java-Treiber anzubieten. Der Nachteil dieses Ansatzes ist die Betriebssystemabhängigkeit der Treiber. Typ 3: Reiner Java Treiber zu einer Middleware Der Treiber ist völlig in Java implementiert und damit Betriebssystemunabhängig. Durch die Middleware ist das Programm auch Datenbankunabhängig. Nachteile: es muss einen Server geben wo diese Middleware installiert ist. Markus Löberbauer 2010 Seite 22
2 Typ 4: Reiner Java Treiber zu einer Datenbank Der Treiber ist völlig in Java implementiert und dadurch Betriebssystemunabhängig. Typ 4 Treiber verbinden direkt auf die Datenbank und sind damit schnell. Ein kleiner Nachteil gegenüber Typ 3 ist die Abhängigkeit von der Datenbank. Installation von JDBC-Treibern Datenbanktreiber für JDBC kann man auf oder bei den Datenbankherstellerseiten finden. Zur Installation muss man den Treiber in den Klassenpfad aufnehmen. Will man einen Treiber benutzen, muss man ihn laden, dazu hat man die Möglichkeiten: a. System Property: jdbc.drivers, zb: a. java -Djdbc.drivers=org.apache.derby.jdbc.EmbeddedDriver Xyz b. System.setProperty("jdbc.drivers", "org.apache.derby.jdbc.embeddeddriver"); b. Manuelles laden der Treiberklasse, zb: a. Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); c. Seit JDBC 4 (Java 6.0), Laden als Java Service durch DriverManager, dazu muss der Treiber das Java Service java.sql.driver anbieten Aufbauen einer Verbindung Eine Verbindung (Connection) zu einer Datenbank kann man über DriverManager.getConnection aufbauen. Dazu muss man eine Datenbank-Url und optional einen Benutzernamen und Passwort angeben. DriverManager: Verwaltet registrierte Treiber, baut Verbindungen auf Connection getconnection(string url, String user, String password) Datenbank URL Aufbau: jdbc:<subprotrokoll>:<subname> jdbc:<datenbanktreiber>:<treiberspezifische Angaben> Derby o o MySQL o jdbc:derby:/path/to/database jdbc:derby:database jdbc:mysql://<host>:<port>/<database> Arten von Statements Über die Connection kann man die Verbindung zur Datenbank verwalten, zb schließen, Informationen über die Datenbank abfragen, Transaktionen verwalten und Statement-Objekte anfordern. JDBC unterscheidet die Statement-Arten: Statement, PreparedStatement und CallableStatement Statement (Connection.createStatement): Absetzen von beliebigen SQL-Befehlen, einsetzbar für Werkzeuge, bei denen der Benutzer den Befehl eingeben kann und für vordefinierte Befehle. Markus Löberbauer 2010 Seite 23
3 Beispiel: Statement stat = con.createstatement(); stat.executeupdate("insert INTO test VALUES ('Hallo')"); PreparedStatement (Connection.prepareStatement): Absetzen von SQL-Befehlen mit Parametern, einsetzbar wenn Benutzer Parameter eingeben können. Parameter werden mit einem? in den SQL-String eingesetzt, und mit set-methoden vor dem Ausführen über ihre Position gesetzt, Positionen werden von 1 ab gezählt. Verhindert SQL-Injection. Kann auf der Datenbank vorkompiliert werden und ist damit schneller bei der Ausführung. Beispiel: PreparedStatement stat; stat = con.preparestatement("insert INTO test VALUES (?,?)"); stat.setstring(1, "Hallo"); stat.setstring(2, "Welt"); stat.executeupdate(); stat.setstring(2, "Jane"); stat.executeupdate(); CallableStatement (Connection.prepareCall): Ausführen von Datenbank-Prozeduren. CallableStatements können wie PreparedStatements parametrisiert werden. Ausgangsparameter werden unterstützt, sie müssen aber registriert werden (registeroutparameter). Übergangsparameter müsse ebenfalls als Ausgangsparameter registriert werden. Beispiel: CallableStatement cs = con.preparecall("{ CALL GET_NUMBER_FOR_NAME(?,?) }"); cs.registeroutparameter(2, java.sql.types.integer); cs.setstring(1, "Duke"); cs.execute(); int number = cs.getint(2); Abfragen der Ergebnisse Statements liefern Abfrageergebnisse als ResultSet zurück. ResultSet ist ein Cursur, es funktioniert wie ein Iterator von dem man Werte abfragen kann. Am Anfang steht das ResultSet vor der ersten Zeile, mit boolean next() kann man die nächste Zeile anspringen, der Rückgabewert von next gibt an ob eine gültige Zeile erreicht wurde. Die Werte einer Zeile können mit Methoden der Art get<typ>(int spalte) und get<typ>(string spaltenname) abgefragt werden. Fragt man einen Wert ab, kann man mit wasnull abfragen ob der Wert in der Datenbank SQL-NULL ist. Folgende weitere Methoden stehen zur verfügung: int findcolumn(string spaltenname): sucht die Spaltennummer zu einer Spalte mit gegebenem Spaltennamen. boolean first(): Springt in die erste Zeile im ResultSet, liefert true wenn gültige Zeile erreicht wird. void beforefirst(): Springt vor die erste Zeile im ResultSet. Markus Löberbauer 2010 Seite 24
4 boolean last(): Springt in die letzte Zeile im ResultSet, liefert true wenn gültige Zeile erreicht wird. void afterlast(): Springt hinter die letzte Zeile im ResultSet. boolean absolute(int row): Spring in die Zeile mit der gegebenen Nummer: o row > 0... von oben (1 erste Zeile, 2 zweite Zeile,...) o row < 0... von unten (-1 letzte Zeile, -2 vorletzte Zeile,...) o liefert true wenn gültige Zeile erreicht wird. int getrow(): Liefert die Nummer der aktuellen Zeile Abbildung der SQL-Typen auf Java-Typen SQL-Typ CHAR, VARCHAR, LONGVARCHAR String NUMERIC, DECIMAL java.math.bigdecimal BIT boolean TINYINT byte SMALLINT short INTEGER int BIGINT long REAL float FLOAT, DOUBLE double Java-Typ BINARY, VARBINARY, LONGVARBINARY DATE TIME TIMESTAMP byte[] java.sql.date java.sql.time java.sql.timestamp siehe JSR-221, Appendix B, Date Type Conversion Tables Metadaten einer Datenbank Über DatabaseMetaData Connection.getMetadata() kann man auf Informationen der Datenbank zugreifen. Das ist wichtig wenn man Programme entwickelt, die die Datenbank nicht kennen, zb: Administrationsoberflächen; oder wenn man die Datenbank bei der ersten Verwendung initialisieren will. Es kann auf Daten wie die Datenbank-Url (geturl), den Benutzernamen (getusername) und Beschreibbarkeit (isreadonly) zugegriffen werden. Man abfragen was eine Datenbank unterstützt, zb: Transaktionen (supportstransactions), Gruppierung (supportsgroupby). Welche Beschränkungen eine Datenbank hat, zb: Maximale Länge eines Statements (getmaxstatementlength), Maximale Anzahl der parallel absetzbaren Statements (getmaxstatements) und Maximale Anzahl geöffneter Verbindungen (getmaxconnections). Wird bei den Beschränkungen 0 geliefert, bedeutet das, dass keine Beschränkung gibt oder die Beschränkung unbekannt ist. Und man inhaltsbezogene Daten abfragen, zb: welche Tabellen in einer Datenbank liegen, welche Spalten in einer Tabelle existieren und welche Typen die Spalten haben. Markus Löberbauer 2010 Seite 25
5 Daten über Ergebnistabellen kann man über ResultSetMetaData ResultSet.getMetaData() abfragen. Darüber kann man beispielsweise abfragen wie viele und welche Spalten geliefert werden; welche Typen und Namen die Spalten haben und ob man auf eine Spalte schreiben kann. Transaktionen Eine Transaktion wird in JDBC gestartet, sobald man ein Statement absetzt und noch keine Transaktion läuft. Standardmäßig wird in JDBC jedes Statement als eine Transaktion behandelt. Braucht man länger laufende Transaktionen, dann muss man die Eigenschaft autocommit der Verbindung auf false setzen (Conncetion.setAutoCommit). Eine laufende Transaktion kann man mit Connection.commit abschließen und mit Connection.rollback rücksetzen. Zusätzlich kann man während einer Transaktion Sicherheitspunkte (Savepoints) angelegen auf die man mit einem Rollback zurückspringen kann. Unterstützte Transaktions-Isolation Welcher Transaktions-Isolations-Level von einer Datenbank unterstützt wird kann man über DatabaseMetaData. supportstransactionisolationlevel abfragen. Die in JDBC bekannten Transaktionslevels sind in der Klasse Connection definiert: NONE: Kein Transaktionssupport => kein JDBC Treiber READ_UNCOMMITTED: dirty reads, non-repeatable reads und phantom reads können auftreten READ_COMMITTED: dirty reads sind verhindert; non-repeatable reads und phantom reads können auftreten REPEATABLE_READ: dirty reads und non-repeatable reads sind verhindert; phantom reads können auftreten SERIALIZABLE: dirty reads, non-repeatable reads und phantom reads sind verhindert. Beispiel: Connection con;... try { con.setautocommit(false); Statement stat = con.createstatement(); stat.executeupdate("insert..."); stat.executeupdate("insert..."); stat.executeupdate("update..."); con.commit(); } catch (SQLException e) { con.rollback(); } Ausnahmebehandlung Alle JDBC-bezogenen Exceptions erben von SQLException, seit Java 6.0 gibt es eine feingranulare Aufteilung in die Fehlerklassen: SQLNonTransientException, SQLTransientException und SQLRecoverableException. Nicht-transient bedeutet, dass ein erneuter Versuch wieder fehlschlagen wird; transient bedeutet, dass ein erneuter Versuch durchgehen kann; und recoverable bedeutet, dass ein erneuter Versuch mit geänderten Daten durchgehen kann. Java DB (Derby) Seit Java 6.0 wird die Datenbank Java DB mit dem JDK geliefert. Diese Datenbank ist auch unter dem Namen Derby oder Apache Derby bekannt. Derby ist eine kompakte (Kern: 2,5MB), in Java Markus Löberbauer 2010 Seite 26
6 entwickelte, einfach zu nutzende (ohne Installation), standardkonforme (SQL 99) Datenbank. Interessant ist auch, dass die erzeugten Daten-Dateien betriebssystemunabhängig sind. Will man von der Konsole aus mit Derby Arbeiten muss man die Umgebungsvariablen JAVA_HOME, DERBY_HOME und PATH setzen: JAVA_HOME=Pfad zur Java JDK Installation DERBY_HOME=Pfad zur Derby Installation PATH um DERBY_HOME/bin erweitern In DERBY_HOME sind die jar-dateien von Derby: derby.jar: Kern, genügt für embedded DB derbynet.jar: Netzzugriff, Serverseitig derbyclient.jar: Netzzugriff, Clientseitig derbytools.jar: Verwaltungs-Werkzeuge derbyrun.jar verweist auf: derby.jar, derbyclient.jar, derbytools.jar und derbynet.jar Auf die Verwaltungs-Werkzeuge in derbytools.jar kann man über Batch-Dateien zugreifen. Das Werkzeug sysinfo liefert Informationen über die Java-Installation auf dem System; mit dblook kann man das Datenbankschema exportieren. ij ist eine Konsole mit der man SQL-Befehle an eine Datenbank absetzen kann. Markus Löberbauer 2010 Seite 27
Java Database Connectivity API / JDBC
Java Database Connectivity API / JDBC Motivation Design Treiber Grundlagen Metadaten Transaktionen Exceptions Praktikum aus Softwareentwicklung 2 Markus Löberbauer 1 Motivation Problem: Zugriff auf DBMS
MehrJava 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
MehrJava 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
MehrJava 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
MehrJava 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
MehrJava 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
MehrClient/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
MehrEinführung in JDBC. IFIS Universität zu Lübeck 18.04.2007
Einführung in JDBC IFIS Universität zu Lübeck 18.04.2007 1 Was ist JDBC Standard für relationale DB: SQL Vor JDBC: Open Database Connectivity (ODBC), uniforme Schnittstelle für Zugriff JDBC: Programmierschnittstelle
MehrProgrammieren 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)
MehrJava 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
MehrJDBC. 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
MehrGrundlagen 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
MehrDatenbankentwurf & 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
MehrJDBC. 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
MehrTag 5 Inhaltsverzeichnis
Tag 5 Inhaltsverzeichnis ODBC / JDBC: Ziel und Prinzip JDBC Überblick Erstes Beispiel Queries (Execute- und UpdateQuery) Der Typ "ResultSet" Diverses Metadata PreparedStatement Transaktionen und Batches
MehrWillkommen. 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
MehrJava 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
MehrTag 5 Inhaltsverzeichnis
Tag 5 Inhaltsverzeichnis ODBC / JDBC: Ziel und Prinzip JDBC Überblick Erstes Beispiel Queries (Execute- und UpdateQuery) Der Typ "ResultSet" Diverses Metadata PreparedStatement Transaktionen und Batches
MehrWebbasierte 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)
MehrDatenbankzugriff 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
MehrDatenbanksysteme. 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
MehrUniversitä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.*;
Mehrseit 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
MehrJava 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
MehrKapitel 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
MehrVorlesung 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
MehrProgrammieren 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
MehrKurzü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-
MehrMySQL mit MyLinux. boehm@2xp.de. 2/2003 boehm@2xp.de Java unter Linux
Bild: www.carsten-lehmann.de MySQL mit MyLinux boehm@2xp.de 1 MySQL mit MyLinux Überblick über MySQL & Co Überblick über MySQL MySQL in 5 Minuten JDBC mit MySQL Ende 2 Überblick über MySQL & Co 3 Datenbanken
MehrJDBC- JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network. M. Löberbauer, T. Kotzmann, H. Prähofer
JDBC- Java Database Connectivity JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer JDBC Einführung Verbindungsaufbau Datenbankanweisungen
MehrWie kommen die Befehle zum DBMS
Wie kommen die Befehle zum DBMS Dr. Karsten Tolle Datenbanken und Informationssysteme Wie kommen die Befehle zum DBMS Bisher gesehen: SQL direkt zum DBMS Workbench Kommandozeile IBM Query Tool Weitere?
MehrDatenbankanwendungen (JDBC)
Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau
MehrHauptschritte einer JDBC-App
JDBC Java DataBase Connectivity Sammlung von Klassen und Interfaces zur Arbeit mit Datenbanken auf Basis von SQL Package java.sql Datenbankmanagementsystem und eine oder mehrere Datenbanken Jdbc Driver,
MehrJava 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
MehrDas 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
MehrHauptschritte einer JDBC-App
JDBC Java DataBase Connectivity Sammlung von Klassen und Interfaces zur Arbeit mit Datenbanken auf Basis von SQL Package java.sql Datenbankmanagementsystem und eine oder mehrere Datenbanken Jdbc Driver,
MehrTransaktionen in Praxis. Dr. Karsten Tolle Vorl
Transaktionen in Praxis Dr. Karsten Tolle Vorl. 13.06.2017 Probleme bei Transaktionen Lost Update und Inconsistent Retrieval Sichtweise vom Benutzer Auszug aus SQL 92 1) P1 ("Dirty read"): SQL-transaction
MehrIsolationsstufen für Transaktionen. Dr. Karsten Tolle
Isolationsstufen für Transaktionen Dr. Karsten Tolle Probleme bei Transaktionen Gewährleistung der Isolation Sperren kein Lost Update Read 1 (Accounts[13]) Read 2 (Accounts[13]) Write 2 (Accounts[13],101.000)
MehrJDBC. JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network. Institut für Systemsoftware, Johannes Kepler Universität Linz
JDBC JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 Institut für Systemsoftware, Johannes Kepler Universität Linz JDBC Einführung Verbindungsaufbau Datenbankanweisungen Arbeiten
MehrMySQL, phpmyadmin & SQL. Kurzübersicht
MySQL, phpmyadmin & SQL Kurzübersicht Referenzen MySQL Documentation: http://dev.mysql.com/doc PHP 5 / MySQL5. Studienausgabe. Praxisbuch und Referenz (Kannengießer & Kannengießer) 2 Datenbank anlegen
MehrPersistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)
Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)
MehrDatenbanken 1 für Mediennformatiker WS 06. 4. ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme
Datenbanken 1 für Mediennformatiker WS 06 4. ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme Der letzte Schritt Diese grafische Oberfläche mit der Ebay-Datenbank verbinden... Anwendungen
MehrDatenbank 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......................
MehrBetreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung
SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte
MehrOracle & 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
MehrUni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr. Praktikum: Datenbanken Woche 9: Wiederholung, Transaktionskonzept,
Praktikum: Datenbanken Raum: LF230 Bearbeitung: 20.-22.6. 2005 Datum Gruppe Vorbereitung Präsenz Transaktionen Transaktionen in Datenbanken sind charakterisiert durch die sogenannten ACID-Eigenschaften.
MehrKapitel 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
MehrWebbasierte 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)
MehrTransaktionen in der Praxis. Dr. Karsten Tolle
Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);
MehrZiel: Verständnis für Konzepte von JDBC aufbauen
11. JDBC Grundsätzliche Nutzung von JDBC Verbindungsaufbau Anfragen Analyse des erhaltenen Ergebnisses Veränderungen des Ergebnisses Ziel: Verständnis für Konzepte von JDBC aufbauen 253 Überblick: Datenbankanfragen
MehrDB-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
MehrDatenbankzugriff mit JDBC
Datenbankzugriff mit Praktikum aus Softwareentwicklung 2 Abteilung für Bioinformatik, JKU Linz - 1 Datenbankzugriff mit Grundlagen, DriverManager, Connection, HSQLDB Installation und Anwendung Abteilung
Mehr11 Anwendungsprogrammierung
11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:
MehrJava Database Connectivity-API (JDBC)
Java Database Connectivity-API (JDBC) Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 JDBC Einführung Verbindungsaufbau Datenbankanweisungen Arbeiten mit ResultSet Typen Metadaten Transaktionen
MehrKlausur 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
MehrJDBC 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,
MehrDatenbanksysteme 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,
MehrUdo Matthias Munz. Datenbanken und SQL. mit. Einführung. Informationstechnik
Udo Matthias Munz Datenbanken und SQL mit Einführung Informationstechnik Zugriff auf eine Datenbank... 2 ODBC... 2 Eine DSN einrichten... 3 Verbindung zu einer Datenbank... 4 Datenbank... 4 Metadaten der
MehrAnwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können!
Datenbanken: Standard CLI und JDBC Anwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können! (Endanwendern ist nicht zuzumuten, SQL zu lernen
MehrOracle: 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Übersicht. Relationale Datenbanken SQL - Structured Query Language JDBC - Java Datenbank Schnittstelle Beispielanwendung. R. Kopetzky 7.
Informatik Verbund Stuttgart der Universität Stuttgart Tutorium Java Anbindung von Datenbanken mit JDBC (kopetzky@ike.uni-stuttgart.de) Übersicht Relationale Datenbanken SQL - Structured Query Language
MehrJava und Datenbanken
Java und Datenbanken Benutzerschnittstelle DB-Client Client Benutzerschnittstelle CORBA, HTTP,... DB-Client Anwendungslogik DB-Schnittstelle JDBC, SQLJ Anwendungslogik DB-Schnittstelle Anwendungs- Server
MehrWie kommen die Befehle zum DBMS
Wie kommen die Befehle zum DBMS Dr. Karsten Tolle Datenbanken und Informationssysteme Wie kommen die Befehle zum DBMS Bisher gesehen: SQL direkt zum DBMS MySQL Workbench / HeidiSQL Kommandozeile Weitere?
Mehr17.2 MS-Access Projekte
964 Von MS-Access 2000 zum SQL-Server 17.2 MS-Access Projekte MS-Access-Projekte, die die Dateiendung adp besitzen, werden als Front-End-Anwendung verwendet. Für die Back-End-Seite gibt es mehrere Möglichkeiten.
MehrPraktikum 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
MehrKapitel 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
MehrDatenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung
Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape 6. Übung Aufgabe 1: In dieser Übung sollen Sie eine kleine Java-Anwendung schreiben, die auf die Oracle-Datenbank
Mehrvs. Fehler zur Übersetzungszeit
Client-Server-Architektur, Anbindung von Programmiersprachen, Call-Level-Schnittstellen: /, JDBC, :, J, gespeicherte Prozeduren, prozedurale Erweiterungen: /PSM, PL/. IPD, Forschungsbereich Systeme der
Mehr11. JDBC. Grundsätzliche Nutzung von JDBC Verbindungsaufbau Anfragen Analyse des erhaltenen Ergebnisses Veränderungen des Ergebnisses
11. JDBC Grundsätzliche Nutzung von JDBC Verbindungsaufbau Anfragen Analyse des erhaltenen Ergebnisses Veränderungen des Ergebnisses Ziel: Verständnis für Konzepte von JDBC aufbauen 270 Überblick: Datenbankanfragen
MehrKlausur zur Vorlesung Datenbanksysteme I
Prof. Dr. W. Kießling 30.01.2002 Lehrstuhl für Datenbanken und Informationssysteme Universität Augsburg Klausur zur Vorlesung Datenbanksysteme I Wintersemester 2001/2002 Name Vorname Matrikelnummer Aufgabe
MehrIsolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012
Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch
MehrAusgewä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
MehrJDBC. VU Datenbanksysteme. Wolfgang Fischl
JDBC VU Datenbanksysteme Wolfgang Fischl Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester 2015/16 Gliederung Einführung
MehrSQL (Structured Query Language) Schemata Datentypen
2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente
Mehr7. 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
MehrPHP- Umgang mit Datenbanken (1)
PHP- Umgang mit Datenbanken (1) Weitere Funktionen zum Umgang mit Datenbanken (Erzeugen, Löschen) und Tabellen (Erzeugen, Löschen) Zum Beispiel für das Erzeugen einer neuen Datenbank $dbname= blumendb
MehrUni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Transaktionen, JDBC
Betreuer: Gudrun Fischer, Tobias Tuttas, Camille Pieume Raum: LF 230 Bearbeitung: 3., 4. und 6. Juli 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material
MehrÜbung: Data Warehousing und Data Mining
Übung: Data Warehousing und Data Mining Sebastian Wandelt 20. Oktober 2011 wandelt@informatik.hu-berlin.de Überblick Organisatorisches Kurze Einführung JDBC PL/SQL 1. Aufgabenblatt Ablauf des Semesters
MehrEinführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
MehrMySQL, Java und einiges mehr
MySQL, Java und einiges mehr Client Der Browser Firefox Chrome Safari Internet Explorer URL http://localhost:8080/html/index.html Internet Die darzustellende Webseite HTML Server Apache Tomcat Jetty
MehrFakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6
WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik
MehrPlanung für Organisation und Technik
Salztorgasse 6, A - 1010 Wien, Austria q Planung für Organisation und Technik MOA-VV Installation Bearbeiter: Version: Dokument: Scheuchl Andreas 19.11.10 MOA-VV Installation.doc MOA-VV Inhaltsverzeichnis
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrMehr Performance mit JDBC JAVA-Anwendungen und die Oracle-Datenbank. Carsten Czarski Business Unit Database Oracle Deutschland GmbH
Mehr Performance mit JDBC JAVA-Anwendungen und die Oracle-Datenbank Carsten Czarski Business Unit Database Oracle Deutschland GmbH Oracle JDBC Treiber Versionen Datenbank-Release J D B C 10.1.0 9.2.0 9.0.1
MehrTechnische Beschreibung: EPOD Server
EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für
MehrEinführung in die Informatik II
Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen
MehrJDBC. 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
Mehr7. 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
MehrDer 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
MehrJAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
MehrTag 4 Inhaltsverzeichnis
Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik
MehrUniversität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 18. Dez Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 8
Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 18. Dez. 2009 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 8 Aufgabe 1: JDBC 2.0 und Scrollable Result Sets Datenbanksysteme
Mehr2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version
2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version Das Verwaltungsmodul moveon besteht aus zwei Komponenten: dem moveon Client und der moveon Datenbank. Der moveon Client enthält alle Formulare,
MehrAusarbeitung des Referats JDBC
. Markus Zywitza Markus Zywitza Matr.-Nr. 832576 Email: i753@informatik.fh-wiesbaden.de mzywitza@t-online.de markus.zywitza@gmx.de Ausarbeitung des Referats JDBC.......... Datenbank-Anbindung unter Java
MehrDatenbanken & 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
MehrSQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99
SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:
MehrDatenbanken. Ein DBS besteht aus zwei Teilen:
Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)
Mehr