Java Database Connectivity API / JDBC
|
|
- Bernd Ritter
- vor 6 Jahren
- Abrufe
Transkript
1 Java Database Connectivity API / JDBC Motivation Design Treiber Grundlagen Metadaten Transaktionen Exceptions Praktikum aus Softwareentwicklung 2 Markus Löberbauer 1
2 Motivation Problem: Zugriff auf DBMS nicht einheitlich Anwendung MySQL API MySQL Anwendung DB2 API DB2 Anwendung Oracle API Oracle Praktikum aus Softwareentwicklung 2 Markus Löberbauer 2
3 Motivation Lösung: Zwischenschicht MySQL API MySQL Anwendung JDBC API J D B C DB2 API DB2 Oracle API Oracle Praktikum aus Softwareentwicklung 2 Markus Löberbauer 3
4 Design Entwicklung seit: 1995 Erster Ansatz: Java erweitern Zweiter Ansatz: Treiber der Datenbankhersteller Vorbild: ODBC Unterschiede: ODBC wenige Befehle, viele Optionen JDBC viele einfache Methoden ODBC nutzt void-zeiger Java kennt keine Zeiger Flexibilität: JDBC erlaubt beliebige Zeichenfolgen Anpassung an Datenbank möglich. Optimierung Bindung Praktikum aus Softwareentwicklung 2 Markus Löberbauer 4
5 Design Java Anwendung JDBC-Treibermanger JDBC/ODBC-Brücke JDBC-Treiber ODBC-Treiber Datenbank Datenbank Praktikum aus Softwareentwicklung 2 Markus Löberbauer 5
6 Treiber, Typ 1 und 2 Typ 1: Brücke zb: JDBC/ODBC ODBC ist verbreitet Testen, Experimentieren Windows Plattformen Leistung JDBC- Anwendung B r ü c k e ODBC ODBC- Treiber Wartung Wenn kein JDBC-Treiber verfügbar ist Client DB Server Typ 2: Partial Java Driver Gibt Aufruf an native API weiter DB und OS abhängig Nutzer braucht plattformabhängige API JDBC- Anwendung Client A P I DB Server Praktikum aus Softwareentwicklung 2 Markus Löberbauer 6
7 Treiber, Typ 3 und 4 Typ 3: Reiner Java Treiber zu Middleware Portabel DB unabhängig Flexibel, mehrere DB möglich DB abhängiger Teil in Middleware JDBC- Anwendung M W DB Typ 4: Reiner Java Treiber zur DB Portabel Schnell Verbindung Netz File I/O Embedded Client braucht DB abhängige Treiber Client Server Server JDBC- Anwendung Client DB Server Praktikum aus Softwareentwicklung 2 Markus Löberbauer 7
8 Download Treiber, Installation Datenbankhersteller Installation Eintragen in den Klassenpfad Laden eines JDBC Treibers System Property: jdbc.drivers java-djdbc.drivers=org.apache.derby.jdbc.embeddeddriverxyz System.setProperty("jdbc.drivers", "org.apache.derby.jdbc.embeddeddriver"); Manuelles laden der Treiberklasse Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); Automatisch durch DriverManager Java Service: java.sql.driver Praktikum aus Softwareentwicklung 2 Markus Löberbauer 8
9 DriverManager Verbindungsaufbau Verwaltet registrierte Treiber, baut Verbindungen auf ConnectiongetConnection(Stringurl, String user, String password) Datenbank URL Aufbau: jdbc:<subprotrokoll>:<subname> jdbc:<datenbanktreiber>:<treiberspezifische Angaben> Derby jdbc:derby:/path/to/database jdbc:derby:database MySQL jdbc:mysql://<host>:<port>/<database> Praktikum aus Softwareentwicklung 2 Markus Löberbauer 9
10 Verbindung Connection: Verwaltet Verbindung (Session) zur DB close() Schließen der Verbindung commit() Bestätigen vorangegangener Änderungen, Standard ist auto-commit StatementcreateStatement() Statement stat = con.createstatement(); stat.executeupdate("insert INTO test VALUES ('Hallo')"); PreparedStatementprepareStatement(Stringsql) PreparedStatementstat = con.preparestatement("insert INTO test VALUES ('Hallo')");... stat.executeupdate(); Praktikum aus Softwareentwicklung 2 Markus Löberbauer 10
11 Statement ResultSetexecuteQuery(Stringsql) Ausführen einer SQL-Abfrage (SELECT) intexecuteupdate(stringsql) Ausführen eines Updates (UPDATE, INSERT, DELETE) Liefert die Anzahl der betroffenen Zeilen booleanexecute(stringsql) Ausführen beliebiger SQL-Anweisungen Liefert truewenn eine Ergebnismenge geliefert wurde intgetupdatecount() Anzahl der betroffenen Zeilen, oder -1 wenn Anweisung keinen Zähler hatte ResultSetgetResultSet() Ergebnismenge der letzten Abfrage, oder null wenn keine Ergebnismenge geliefert wurde voidclose() Gibt alle JDBC Ressourcen frei Keine Parameter! SQL-Injection Praktikum aus Softwareentwicklung 2 Markus Löberbauer 11
12 PreparedStatement voidset<typ>(int n, <Typ> x) Setzen des Parameters an der Stelle n (1..m) voidclearparameters() Löschen aller Parameterwerte ResultSetexecuteQuery() Ausführen der vorübersetzten SQL-Anfrage (SELECT) intexecuteupdate() Ausführen des vorübersetzten Updates (UPDATE, INSERT, DELETE) Gibt die Anzahl betroffener Zeilen zurück PreparedStatementstat; stat = con.preparestatement("insert INTO test VALUES (?,?)"); stat.setstring(1, "Hallo"); stat.setstring(2, "Welt"); stat.executeupdate(); stat.setstring(2, "Jane"); stat.executeupdate(); Praktikum aus Softwareentwicklung 2 Markus Löberbauer 12
13 CallableStatement Ausführen von DB-Prozeduren (SQL storedprocedures) Parameterlose Prozedur {callprocedure_name } Prozedur {callprocedure_name(?,?,...)} Funktion {? = callprocedure_name(?,?,...) } Eingangsparameter analog zu PreparedStatement Ausgabeparameter müssen registriert werden voidregisteroutparameter(intindex, intsqltype) CallableStatementcs = con.preparecall("{ CALL GET_NUMBER_FOR_NAME(?,?) }"); cs.registeroutparameter(2, java.sql.types.integer); cs.setstring(1, "Duke"); cs.execute(); intnumber = cs.getint(2); Praktikum aus Softwareentwicklung 2 Markus Löberbauer 13
14 ResultSet Zeilenweise abarbeiten der Ergebnistabelle booleannext() Anspringen der nächsten Zeile true solange gültige Zeile erreicht wird ResultSet beginnt vor der ersten Zeile <Typ>get<Typ>(int spalte) <Typ>get<Typ>(StringspaltenName) booleanwasnull() true wenn letzter Wert SQL-NULL war intfindcolumn(stringspaltenname) getint(3) => 25 wasnull() =>false getstring("name") => Max findcolumn("nr") => 1 next() Nr Name Age 1 Max 25 2 Kurt Praktikum aus Softwareentwicklung 2 Markus Löberbauer 14
15 ResultSet Fortsetzung booleanfirst() Erste Zeile im ResultSet true wenn gültige Zeile erreicht voidbeforefirst() Vor die erste Zeile im ResultSet boolean last() Letzte Zeile im ResultSet true wenn gültige Zeile erreicht voidafterlast() Nach letzter Zeile im ResultSet booleanabsolute(introw) Eine Zeile anspringen row> 0... von oben (1 erste Zeile, 2 zweite Zeile,...) row< 0... von unten (-1 letzte Zeile, -2 vorletzte Zeile,...) true wenn gültige Zeile erreicht intgetrow() Nummer der aktuellen Zeile Praktikum aus Softwareentwicklung 2 Markus Löberbauer 15
16 Typen SQL-Typ CHAR, VARCHAR, LONGVARCHAR NUMERIC, DECIMAL BIT TINYINT SMALLINT INTEGER BIGINT REAL FLOAT, DOUBLE BINARY, VARBINARY, LONGVARBINARY DATE TIME TIMESTAMP Java-Typ String java.math.bigdecimal boolean byte short int long float double byte[] java.sql.date java.sql.time java.sql.timestamp... siehe JSR-221, Appendix B, Date Type ConversionTables Praktikum aus Softwareentwicklung 2 Markus Löberbauer 16
17 Metadaten, Datenbank Erstellen über Verbindung DatabaseMetaData<Connection>.getMetaData() Allgemeines ConnectiongetConnection() String geturl() String getusername() booleanisreadonly() Eigenschaften boolean supportsansi92entrylevelsql() booleansupportstransactions() booleansupportsgroupby() Beschränkungen intgetmaxstatementlength() intgetmaxstatements() intgetmaxconnections() 0.. kein Limit oder unbekannt Praktikum aus Softwareentwicklung 2 Markus Löberbauer 17
18 Metadaten, Tabellen ResultSetgetTables(Stringcatalog, String schema, String table, String[] types) ResultSetgetColumns(Stringcatalog, String schema, String table, String column) catalog: Name des Katalogs "" Tabellen ohne Katalog, null Katalognamen nicht berücksichtigen scheme: Schemaname "" Tabellen ohne Schema, null nicht berücksichtigen table: Tabellenname null nicht berücksichtigen column: Spaltenname null nicht berücksichtigen types: zb: "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM" null nicht berücksichtigen Praktikum aus Softwareentwicklung 2 Markus Löberbauer 18
19 Metadaten, Ergebnismenge Erstellen ResultSetMetaData<ResultSet>.getMetaData() Eigenschaften Nr Name Title... Age intgetcolumncount() 1 Max DI String getcolumnname(int column) 2 Susi Mag intgetcolumntype(int column) String getcolumntypename(int column) String gettablename(int column) booleaniscurrency(intcolumn) getcolumncount() => 3 getcolumnname(1) => "Nr" getcolumntype(3) => 4 // INTEGER getcolumntypename(3) => "int" gettablename(2) => "users" SELECT Nr, Name, Age FROM users; Nr Name Age 1 Max 30 2 Susi Praktikum aus Softwareentwicklung 2 Markus Löberbauer 19
20 Transaktionen Standard: auto-commit, jedes Statement eine Transaktion boolean<connection>.getautocommit() void<connection>.setautocommit(booleanac) Transaktion startet automatisch Transaktion abschießen Auto-Commit void<connection>.commit() Transaktion rücksetzen (zb: SQLException) Savepoints void<connection>.rollback() 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(); } Transaction- Isolation NONE READ_UNCOMMITTED READ_COMMITTED REPEATABLE_READ SERIALIZABLE Praktikum aus Softwareentwicklung 2 Markus Löberbauer 20
21 Exceptions SQLException SQLNonTransient Exception SQLTransient Exception SQLRecoverable Exception Erneuter Versuch wird fehlschlagen Erneuter Versuch kann durchgehen Erneuter Versuch nach Eingriffen kann durchgehen Praktikum aus Softwareentwicklung 2 Markus Löberbauer 21
22 JavaDB, Derby Seit Java 6.0 mitgeliefert Web-Seite: Umgebungsvariablen JAVA_HOME=Pfad zur Java JDK Installation DERBY_HOME=Pfad zur Derby Installation PATH um DERBY_HOME/bin erweitern JARs in DERBY_HOME/lib derby.jar, Engine, genügt für embedded DB derbynet.jar, Netzzugriff, Serverseitig derbyclient.jar, Netzzugriff, Clientseitig derbytools.jar, Verwaltungs-Werkzeuge derbyrun.jar verweist auf: derby.jarderbyclient.jarderbytools.jarderbynet.jar Praktikum aus Softwareentwicklung 2 Markus Löberbauer 22
23 JavaDB, Derby, Kommandozeilen-Werkzeuge Systeminformation: sysinfo Praktikum aus Softwareentwicklung 2 Markus Löberbauer 23
24 JavaDB, Derby, Kommandozeilen-Werkzeuge Kommandozeilenwerkzeug: ij Verbinden zu (und erzeugen einer) Datenbank Tabelle erzeugen Beschreibung einer Tabelle Praktikum aus Softwareentwicklung 2 Markus Löberbauer 24
25 JavaDB, Derby, Kommandozeilen-Werkzeuge Kommandozeilenwerkzeug: ij Abfragen von Datensätzen Aktualisieren eines Datensatzes Löschen einer Tabelle Praktikum aus Softwareentwicklung 2 Markus Löberbauer 25
26 Zusammenfassung Datenbankunabhängigkeit Zwischenschicht -> einfachere Programmentwicklung Treiberschnittstelle (min. SQL 92 entrylevel) 4 Treiberarten Brücke (zb: JDBC -> ODBC) Teilweise Java Java zu Middleware Java zu Datenbank Beliebige SQL-Kommandos absetzbar Optimierung vs. Datenbankunabhängigkeit Statements PreparedStatement Vorkompiliert, mit Parametern (Sicher gegen SQL-Injection) Statement Statisch, Abfragen vom Benutzer, keine Parameter CallableStatement StoredProcedures, mit IN, OUT und INOUT Parametern Praktikum aus Softwareentwicklung 2 Markus Löberbauer 26
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
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
MehrPraktikum aus Softwareentwicklung 2, Stunde 7
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
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
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
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 (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
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)
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
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)
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.*;
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
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
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
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
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
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
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
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......................
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
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
MehrDatenbankanwendungen (JDBC)
Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau
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
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
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
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
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)
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
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
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
Mehr11 Anwendungsprogrammierung
11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:
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
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
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
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?
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:
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
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
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
MehrÜbung3. Test der Möglichkeiten des JDBC-Interfaces. Prof. Dr. Andreas Schmietendorf 1. Übung 3
Übung3 Test der Möglichkeiten des JDBC-Interfaces Prof. Dr. Andreas Schmietendorf 1 Überblick & Zielstellungen Prof. Dr. Andreas Schmietendorf 2 Überblick Die Verwendung eines Datenbankmanagementsystems
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
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
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,
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
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
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
MehrSQL und MySQL. Kristian Köhntopp
SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)
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
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. 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
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
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,
MehrÜbersicht der wichtigsten MySQL-Befehle
Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit
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.
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,
MehrDatenbank 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`
MehrDie Anweisung create table
SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl
MehrKapitel 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
MehrSQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar
Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-
MehrEine Einführung in MySQL
LUG Peine Eine Einführung in MySQL Mario Herold LINUX USER GROUP PEINE WWW.LUG- PEINE.ORG This work is licen sed u nd er the Creative Com m on s Attrib ution- - Sh arealike 2.0 Licen se. To view a cop
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
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
MehrEntwicklungsumgebung für die Laborübung
Entwicklungsumgebung für die Laborübung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung
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);
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
MehrKapitel 11: Anwendungsentwicklung
Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für ysteme Skript zur Vorlesung Wintersemester 2010/2011 Kapitel 11: Anwendungs Vorlesung: DP Dr. Matthias Schubert
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
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
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
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)
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?
MehrMySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.
MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt
MehrJOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation
MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35
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-
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,
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
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
MehrNeue Features Oracle Database 12.2 Wann denn endlich?
Neue Features Oracle Database 12.2 Wann denn endlich? DOAG 2017 Datenbank Dierk Lenz Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung, Schulung und Betrieb/Fernwartung rund
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
MehrIn diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.
1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?
MehrDATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER
DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.
MehrInhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung
Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,
MehrJava und Datenbanken Ein Überblick
Java und Datenbanken Ein Überblick Benjamin Lietzau & Philipp Meyer Sommersemester 2011 1 Themenüberblick 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 2 Themenüberblick 1. Einführung
MehrFirebird 2.1 Das freie RDBMS. Robert Dollinger
Firebird 2.1 Das freie RDBMS Robert Dollinger Themen Die Geschichte von Firebird Das Firebird Projekt Unterstützte Plattformen Classic Server Super Server Embedded Server Tools Neue Features von Firebird
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
MehrÜbung Datenbanken in der Praxis. Datenmodifikation mit SQL
Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern
MehrBauinformatik 1. Teil 1 / Übungen. Ernst Baeck. Fachgebiet Statik und Dynamik der Flächentragwerke. 31. Mai 2017
Bauinformatik 1 Teil 1 / Übungen Ernst Baeck Fachgebiet Statik und Dynamik der Flächentragwerke 31. Mai 2017 E. Baeck (Uni-DUE) Folien-Skript (U) 1 / 19 Datenbankprogrammierung mit VBA, SQL und E. Baeck
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
MehrProzedurale Datenbank- Anwendungsprogrammierung
Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.
MehrGrundlagen der Informatik 2
Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung
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
Mehr