Java Database Connectivity API / JDBC
|
|
- Gesche Hase
- vor 8 Jahren
- Abrufe
Transkript
1 Java Database Connectivity API / JDBC Motivation Design Treiber Grundlagen Metadaten Transaktionen Exceptions Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1
2 Motivation Problem: Zugriff auf DBMS nicht einheitlich Anwendung MySQL API MySQL Anwendung DB2 API DB2 Anwendung Oracle API Oracle 2
3 Motivation Lösung: Zwischenschicht MySQL API MySQL Anwendung JDBC API J D B C DB2 API DB2 Oracle API Oracle 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 " 4
5 Design Java Anwendung JDBC-Treibermanger JDBC/ODBC- Brücke JDBC-Treiber ODBC-Treiber Datenbank Datenbank 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 " JDBC- Anwendung A P I DB! Nutzer braucht plattformabhängige API " Client Server 6
7 Treiber, Typ 3 und 4 Typ 3: Reiner Java Treiber zu Middleware! Portabel!! DB unabhängig!! Flexibel, mehrere DB möglich! JDBC- Anwendung M W DB! DB abhängiger Teil in Middleware Typ 4: Reiner Java Treiber zur DB! Portabel!! Schnell!! Verbindung Netz File I/O Embedded! Client braucht DB abhängige Treiber " Client JDBC- Anwendung Client Server Server DB Server 7
8 Treiber, Installation Download! Datenbankhersteller Installation! Eintragen in den Klassenpfad Laden eines JDBC Treibers! System Property: jdbc.drivers java -Djdbc.drivers=org.apache.derby.jdbc.EmbeddedDriver Xyz 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 8
9 Verbindungsaufbau 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 jdbc:derby:/path/to/database jdbc:derby:database! MySQL jdbc:mysql://<host>:<port>/<database>!"#$%&'()*+,-) 9
10 Verbindung Connection: Verwaltet Verbindung (Session) zur DB! close() Schließen der Verbindung! commit() Bestätigen vorangegangener Änderungen, Standard ist auto-commit! Statement createstatement() Statement stat = con.createstatement(); stat.executeupdate("insert INTO test VALUES ('Hallo')");! PreparedStatement preparestatement(string sql) PreparedStatement stat = con.preparestatement("insert INTO test VALUES ('Hallo')");... stat.executeupdate(); 10
11 Statement ResultSet executequery(string sql)! Ausführen einer SQL-Abfrage (SELECT) int executeupdate(string sql)! Ausführen eines Updates (UPDATE, INSERT, DELETE)! Liefert die Anzahl der betroffenen Zeilen boolean execute(string sql)! Ausführen beliebiger SQL-Anweisungen! Liefert true wenn eine Ergebnismenge geliefert wurde int getupdatecount()! Anzahl der betroffenen Zeilen, oder -1 wenn Anweisung keinen Zähler hatte ResultSet getresultset()! Ergebnismenge der letzten Abfrage, oder null wenn keine Ergebnismenge geliefert wurde void close()! Gibt alle JDBC Ressourcen frei Parameterlos! SQL-Injection 11
12 PreparedStatement void set<typ>(int n, <Typ> x)! Setzen des Parameters an der Stelle n (1..m) void clearparameters()! Löschen aller Parameterwerte ResultSet executequery()! Ausführen der vorübersetzten SQL-Anfrage (SELECT) int executeupdate()! Ausführen des vorübersetzten Updates (UPDATE, INSERT, DELETE)! Gibt die Anzahl betroffener Zeilen zurück 90% Lösung 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(); 12
13 CallableStatement Ausführen von DB-Prozeduren (SQL stored procedures) Parameterlose Prozedur! {call procedure_name } Prozedur! {call procedure_name(?,?,...)} Funktion! {? = call procedure_name(?,?,...) } Eingangsparameter analog zu PreparedStatement Ausgabeparameter müssen registriert werden! void registeroutparameter(int index, int sqltype) 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); 13
14 Batch Statements Kommandos Anfügen! Statements: void addbatch(string sqlcmd)! PreparedStatements: void addbatch() Löschen der Kommandos: void clearbatch() Ausführen der Kommandos: int[] executebatch() Statement stmt = conn.createstatement(); stmt.addbatch("insert into Person values(5, 'Herman', 'Hollerith', 1983)"); stmt.addbatch("insert into Person values(6, 'Larry', 'Ellison', 1977)"); int[] upds = stmt.executebatch(); PreparedStatement pstmt = conn.preparestatement("insert into Person values(?,?,?,?)"); for (Person p : persons) { pstmt.setint(1, p.getid()); pstmt.setstring(2, p.getfirstname()); pstmt.setstring(3, p.getlastname()); pstmt.setint(4, p.getyear()); pstmt.addbatch(); } int[] res = pstmt.executebatch(); 14
15 ResultSet ResultSet ist die Ergebnistabelle einer Abfrage Arten! einfache: können nur sequentiell von vorne nach hinten durchlaufen werden! scrollbare: erlaubt beide Richtungen und Positionierung! änderbare: erlauben Änderungen in der Datenbank! sensitive: zeigen Änderungen in Datenbank an Art beim Erzeugen des Statements festlegen: ResultSet.TYPE_FORWARD_ONLY ResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.TYPE_SCROLL_SENSITIVE Statement preparestatement(string sql, int resultsettype, int resultsetconcurrency, int resultsetholdability) throws SQLException ResultSet.CONCUR_READONLY ResultSet.CONCUR_UPDATABLE ResultSet.HOLD_CURSORS_OVER_COMMIT ResultSet.CLOSE_CURSORS_AT_COMMIT 15
16 ResultSet Lesen Zeilenweise abarbeiten der Ergebnistabelle! boolean next() 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>(string spaltenname)! boolean wasnull() true wenn letzter Wert SQL-NULL war! int findcolumn(string spaltenname)!"#!$%&# '(&# getint(3) => 25 wasnull() => false getstring("name") => Max findcolumn("nr") => 1 next() *).$/),+),) 0%1'),-) 222) 222) 222) 16
17 ResultSet Navigation boolean first()! Erste Zeile im ResultSet! true wenn gültige Zeile erreicht void beforefirst()! Vor die erste Zeile im ResultSet boolean last()! Letzte Zeile im ResultSet! true wenn gültige Zeile erreicht void afterlast()! Nach letzter Zeile im ResultSet boolean absolute(int row)! 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 int getrow()! Nummer der aktuellen Zeile 17
18 ResultSet Update void update<typ>(int col, <Typ> x)! ändert die aktuelle Zeile void updaterow()! schreibt die aktuelle Zeile in die Datenbank zurück void movetoinsertrow()! bewegt den Cursor auf die "insert row" void insertrow()! der Cursor muss vorher mit movetoinsertrow() auf die "insert row" bewegt werden.! fügt eine neue Zeile in die Datenbank ein void deleterow()! löscht aktuelle Zeile aus der Datenbank 18
19 Typen SQL-Typ CHAR, VARCHAR, LONGVARCHAR NUMERIC, DECIMAL BIT TINYINT SMALLINT INTEGER BIGINT REAL FLOAT, DOUBLE Java-Typ String java.math.bigdecimal boolean byte short int long float double BINARY, VARBINARY, LONGVARBINARY byte[] DATE TIME TIMESTAMP java.sql.date java.sql.time java.sql.timestamp... siehe JSR-221, Appendix B, Date Type Conversion Tables 19
20 Metadaten, Datenbank Erstellen über Verbindung! DatabaseMetaData <Connection>.getMetaData() Allgemeines! Connection getconnection()! String geturl()! String getusername()! boolean isreadonly() Eigenschaften! boolean supportsansi92entrylevelsql()! boolean supportstransactions()! boolean supportsgroupby() Beschränkungen! int getmaxstatementlength()! int getmaxstatements()! int getmaxconnections() 0.. kein Limit oder unbekannt 20
21 Metadaten, Tabellen ResultSet gettables(string catalog, String schema, String table, String[] types) ResultSet getcolumns(string catalog, 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 21
22 Metadaten, Ergebnismenge Erstellen! ResultSetMetaData <ResultSet>.getMetaData() Eigenschaften! int getcolumncount()! String getcolumnname(int!column)! int getcolumntype(int!column)! String getcolumntypename(int!column)! String gettablename(int!column)! boolean iscurrency(int column) getcolumncount() => 3 getcolumnname(1) => "Nr" getcolumntype(3) => 4 // INTEGER getcolumntypename(3) => "int" gettablename(2) => "users" Nr Name Title... Age 1 Max DI Susi Mag SELECT Nr, Name, Age FROM users; Nr Name Age 1 Max 30 2 Susi
23 Transaktionen Standard: auto-commit, jedes Statement eine Transaktion! boolean <Connection>.getAutoCommit()! void <Connection>.setAutoCommit(boolean ac) Transaktion startet automatisch Transaktion abschießen! void <Connection>.commit() Transaktion rücksetzen (zb: SQLException)! void <Connection>.rollback() Auto-Commit Savepoints 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 23
24 Exceptions SQLException SQLNonTransient Exception SQLTransient Exception SQLRecoverable Exception Erneuter Versuch wird fehlschlagen Erneuter Versuch kann durchgehen Erneuter Versuch nach Eingriffen kann durchgehen 24
25 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.jar derbyclient.jar derbytools.jar derbynet.jar 25
26 JavaDB, Derby Installation & Treiber DERBY_HOME (Windows)! C:\Programme\Sun\JavaDB Derby Hilfsprogramme! DERBY_HOME\bin Derby Driver! org.apache.derby.jdbc.clientdriver! org.apache.derby.jdbc.embeddeddriver Derby Connection-String! jdbc:derby://localhost:1527/name_of_db! jdbc:derby:name_of_db Derby Network- Server muss gestartet sein! Embedded, Zugriff auf Dateien: Nur eine Verbindung möglich! 26
27 JavaDB, Derby, Kommandozeilen-Werkzeuge Systeminformation: sysinfo 27
28 JavaDB, Derby, Kommandozeilen-Werkzeuge Kommandozeilenwerkzeug: ij Verbinden zu (und evtl. erzeugen einer) Datenbank Tabelle erzeugen Beschreibung einer Tabelle 28
29 JavaDB, Derby, Kommandozeilen-Werkzeuge Kommandozeilenwerkzeug: ij Einfügen eines Datensatzes Aktualisieren eines Datensatzes Löschen einer Tabelle 29
30 Zusammenfassung Datenbankunabhängigkeit! Zwischenschicht -> einfachere Programmentwicklung! Treiberschnittstelle (min. SQL 92 entry level) 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 Stored Procedures, mit IN, OUT und INOUT Parametern 30
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
MehrJava 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
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
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
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
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
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
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
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
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
MehrClient/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
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
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......................
MehrDatenbankanwendungen (JDBC)
Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau
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
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
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
MehrHo Ngoc Duc IFIS - Universität zu Lübeck
Ho Ngoc Duc IFIS - Universität zu Lübeck 16.04.2003 1 Standard für relationale DB: SQL Vor JDBC: Open Database Connectivity (ODBC), uniforme Schnittstelle für Zugriff JDBC: Programmierschnittstelle (Java-API)
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)
MehrDatenbanken 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
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
MehrPRAKTIKUM SOFTWAREENTWICKLUNG 2
PRAKTIKUM SOFTWAREENTWICKLUNG 2 JDBC SYSTEM SOFTWARE 1 JDBC Einführung Verbindungsaufbau Datenbankanweisungen Arbeiten mit ResultSet Typen Metadaten Transaktionen Zusammenfassung Datenbanksystem Derby
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
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
MehrDatenbanksysteme. 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
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
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
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
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
MehrDatenbanken 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:
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
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
MehrJava: 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)
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
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.*;
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.
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
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
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
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
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
MehrDynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München
Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester
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
Mehr3. Stored Procedures und PL/SQL
3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
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
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
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
MehrUniversität Stuttgart Abteilung Anwendersoftware 01.07.2002. - Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures
SQLJ Basics Universität Stuttgart Abteilung Anwendersoftware 01.07.2002 Was ist SQLJ? SQLJ Part 0: - Steht für Embedded SQL in Java SQLJ Part 1: - Java-Methoden als SQL Stored-Procedures SQLJ Part 2: -
Mehr11 Anwendungsprogrammierung
11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:
MehrAndroid Java Specifics / Basic IO
Dalvik virtual machine Registermaschine anstelle einer Stackmaschine Optimiert für geringen Speicherverbrauch Umwandlung von.class Dateien in.dex-format mit Hilfe von dx Jedes Programm läuft als eigener
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 (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
MehrPHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden.
Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) PHP und MySQL Integration von MySQL in PHP Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424 (michael.kluge@tu-dresden.de) MySQL
MehrProgrammieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler
Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Informationen aus der Datenbank lesen Klasse SQLiteDatabase enthält die Methode query(..) 1. Parameter: Tabellenname
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,
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.
MehrDatenbanksysteme 2011
Datenbanksysteme 2011 noch Kapitel 10: Datenbankapplikationen Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen MS Visio MS Access Embedded SQL im C-Programm JDBC /
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
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
MehrDatenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin
Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,
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-
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,
MehrSQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter
SQLJ Standardisierte Java-DB DB-Schnittstelle Spezifikationen Part 0: Embedded SQL für Java (ANSI-Standard; Object Language Binding) Statische Einbettung von SQL-Anweisungen in Java-Quelltext Part 1: 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
MehrJDBC. VL Datenbanksysteme. Ingo Feinerer
JDBC VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung Einführung DB-Anbindung an Programmiersprachen
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
MehrGesicherte Prozeduren
Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.
MehrVerteidigung gegen SQL Injection Attacks
Verteidigung gegen SQL Injection Attacks Semesterarbeit SS 2003 Daniel Lutz danlutz@watz.ch 1 Inhalt Motivation Demo-Applikation Beispiele von Attacken Massnahmen zur Verteidigung Schlussfolgerungen 2
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)
MehrUNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme
UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //
MehrJSP, Tomcat, JDBC. Agenda. Übung Informationsintegration 3.5.2004. JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven
JSP, Tomcat, JDBC Übung Informationsintegration 03.05.2004 Agenda JSP & Tomcat Syntax Impizite Objekte Direktiven JDBC 2 Java Server Pages - JSP Was ist eine JSP? Bietet die Mögichkeit, dynamischen Inhat
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
Mehrphp Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...
php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.
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
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
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-
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
MehrAnleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken
Betriebliche Datenverarbeitung Wirtschaftswissenschaften AnleitungzurEinrichtungeinerODBC VerbindungzudenÜbungsdatenbanken 0.Voraussetzung Diese Anleitung beschreibt das Vorgehen für alle gängigen Windows
Mehr6. Java Database Connectivity. Prof. Dr.-Ing. Wolfgang Lehner
6. Java Database Connectivity Prof. Dr.-Ing. Wolfgang Lehner > Roadmap intern intern/extern extern SQL UDF SQL SP XQUERY Trigger ext. UDF ext. SP SQLJ Embedded SQL JDBC ODBC OLE.NET Kommunikationslast
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
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,
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
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
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)
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
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
MehrC# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue
C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET Leibniz Universität IT Services Anja Aue Experteneinstellungen in Visual Studio Express Extras Einstellungen Experteneinstellungen. Es werden
MehrDatenbank-Programmierung mit JDBC Weiterbildungsmaßnahme Technische und Praktische Informatik Sommersemester 2003
Datenbank-Programmierung mit JDBC Weiterbildungsmaßnahme Technische und Praktische Informatik Sommersemester 2003 DBIS @ BTU Cottbus Dipl-Inf Gunar Fiedler 1 Motivation für JDBC Auf dem Markt existiert
Mehr