Vorlesung Datenbanksysteme vom JDBC. Einführung JDBC-Verbindungen Schreibzugriff mit SQL SELECT Anweisungen prepared/callable Statements
|
|
- Maximilian Hofmann
- vor 5 Jahren
- Abrufe
Transkript
1 Vorlesung Datenbanksysteme vom JDBC Einführung JDBC-Verbindungen Schreibzugriff mit SQL SELECT Anweisungen prepared/callable Statements
2 Einführung DB-Anbindung an Programmiersprachen Embedded SQL vs. Call Level Interface JDBC-Treiber Typen JDBC-Klassen/Interfaces JDBC-Quellen JDBC-Beispiel
3 DB-Anbindung an Programmiersprachen 1. Erweiterung der Programmiersprache: DB-Konstrukte zur Programmiersprache hinzufügen eher historische Bedeutung (80er Jahre) z.b. Pascal/R ("Relationales Pascal") 2. Embedded SQL: Speziell markierte SQL-Anweisungen Pre-Compiler wandelt diese in Aufrufe von (meist proprietären) Bibliotheksfunktionen der "Wirtsprache" um. z.b.: Embedded SQL in C/C++, SQLJ 3. CLI (Call Level Interface): Verwendung von standardisierten Prozeduraufrufen z.b.: SQL/CLI, ODBC, JDBC 3
4 Embedded SQL Beispiel: C/C++ EXEC SQL BEGIN DECLARE SECTION; long matrnr; char name[30]; int semester; EXEC SQL END DECLARE SECTION; EXEC SQL DECLARE c_studenten CURSOR FOR SELECT * FROM Studenten; EXEC SQL OPEN c_studenten; while (SQLCODE == 0) { EXEC SQL FETCH c_studenten INTO :matrnr, :name, :semester; printf("%d, %s %d", matrnr, name, semester); } EXEC SQL CLOSE c_studenten; 4
5 Embedded SQL Beispiel: SQLJ #sql iterator StudIterator (int MatrNr, String Name, int Semester); StudIterator i_stud; #sql i_stud = { select * from Studenten }; while (i_stud.next()) { System.out.println(i_stud.MatrNr() + ", " + i_stud.name() + ", " + i_stud.semester()); } i_stud.close(); 5
6 Embedded SQL: Merkmale Üblicherweise "statisches SQL", d.h.: Struktur der Anfragen steht zur Compile-Zeit fest. Vor-/Nachteile: weiter gehende Überprüfungen möglich (z.b.: Syntax-Prüfung der SQL-Anfragen) aber unflexibel Häufig wird aber auch "dynamisches SQL" unterstützt (d.h.: Anfrage in String-Variable), z.b.: Pro*C von Oracle. Informationsaustausch zw. SQL und Wirtsprache: Host-Variablen + Cursor Portabilität: Ursprünglich nur auf Source Code Ebene, d.h.: für Verwendung eines anderen DBMS war Recompilierung nötig. SQLJ: Pre-Compiler ("Translator") erzeugt JDBC => gleiche Flexibilität wie CLI (aber bequemer). 6
7 Call Level Interfaces (1) Erster CLI-Standard: Microsoft, Lotus, etc: definieren eine Menge von Funktionen unter dem Namen "Database Connectivity" SAG (SQL Access Group: Oracle, Informix, etc.): auf Database Connectivity aufbauend wird ein CLI definiert. 1992: CLI wird von ANSI und ISO als Basis eines neuen Standards übernommen. ODBC (Open Database Connectivity): 1992: von Microsoft speziell für Windows entwickelt, später auch andere Betriebssysteme (insbesondere UNIX) Implementierung + Erweiterung des CLI-Standard Hauptsächlich für C/C++; aber auch andere Sprachen 7
8 Call Level Interfaces (2) SQL/CLI: Standardisierungsarbeiten der ANSI/ISO SQL Gruppen auf der Basis von ODBC. 1995: Verabschiedung des Standards : SQL/CLI 1999: Erweiterung des SQL/CLI im Zuge der SQL- Erweiterungen durch SQL-99. JDBC: Basierend auf ODBC aber weniger komplex, nützt Java- Möglichkeiten (z.b. objektorientiert, try-catch für Error Handling, ) Versionen: 1997: JDBC 1.0 in J2SE, ab Version 1.4: JDBC 3.0 letzte Version: JDBC 4.0 8
9 JDBC-Treiber Typen (1) Type 1: JDBC-ODBC-Bridge + ODBC-driver: JDBC-ODBC-Bridge ruft ODBC-Methoden auf ODBC-Treiber nötig. Type 2: Native-API partly- Java driver JDBC-Treiber ruft herstellerspezifische DB-Bibliotheken auf. => Diese Bibliotheken sind am Client erforderlich z.b.: Oracle OCI driver Type 1 Type 2 9
10 JDBC-Treiber Typen (2) Type 3: JDBC-Net pure Java driver: JDBC-Treiber ruft Middlewarespezifische Methoden auf. Middleware stellt Connectivity zu unterschiedlichen DB- Systemen bereit. Type 4: Native-protocol pure Java driver JDBC-Treiber kommuniziert direkt mit dem DB-Server. Außer JDBC-Treiber keine weitere SW am Client nötig. => beste Lösung für Applets z.b.: Oracle thin driver Type 4 Type 3 10
11 JDBC-Klassen/Interfaces package java.sql, z.b.: DriverManager Connection DatabaseMetaData Statement, PreparedStatement, CallableStatement ResultSet ResultSetMetaData SQLException, SQLWarning Types package javax.sql, z.b.: DataSource 11
12 JDBC-Quellen JavaDoc: Tutorials und weitere Informationen im Web: GettingStartedTOC.fm.html Bücher (für die VL Datenbanksysteme nicht erforderlich!): JDBC API Tutorial and Reference: Maydene Fisher, Jon Ellis, Jonathan Bruce (O'Reilly, 2003) Datenbanken & Java JDBC, SQLJ, ODMG und JDO: Gunter Saake, Kai-Uwe Sattler (dpunkt.verlag, 2003) 12
13 JDBC-Beispiel DriverManager.registerDriver (new oracle.jdbc.driver.oracledriver()); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:xe", "user", "password"); Statement stmt = conn.createstatement(); ResultSet rs = stmt.executequery ("select * from Studenten"); // Achtung: kein ';' als SQL-Begrenzer! while(rs.next()){ System.out.print(rs.getString(1) + ", " ); System.out.println(rs.getString(3)); } rs.close(); stmt.close(); conn.close(); 13
14 JDBC-Verbindungen Verbindungsaufbau Eigenschaften/Methoden einer Verbindung Verbindungsabbau Fehlerbehandlung
15 Verbindungsaufbau (1) DB-spezifischer JDBC-Treiber im CLASSPATH: für die Laborübung: ojdbc14.jar Möglichkeiten einen Treiber zu registrieren: Class.forName("oracle.jdbc.driver.OracleDriver"); oder: DriverManager.registerDriver (new oracle.jdbc.driver.oracledriver()); Parameter von getconnection() in der Laborübung: Treiber: jdbc:oracle:thin DB-Adresse: uebung.dbai.tuwien.ac.at:1521:uebung DB-User/Passwort: laut Mail an LVA-TeilnehmerInnen d.h.: Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@uebung.dbai.tuwien.ac.at:1521:uebung", "u<matrikelnr>", "<passwort>"); 15
16 Verbindungsaufbau (2) "Klassische" Methode: DriverManager.getConnection(" ") "Modernere" Methode: mittels DataSource Interface Die DB-Hersteller stellen spezfische Implementierungen von DataSource bereit. Basis-Implementierung funktioniert im wesentlichen wie DriverManager. Daneben stellen die DB-Hersteller aber auch Connection Pooling Implementierungen bereit => Connection Objekt als Teil eines Connection Pools. Vorteil: Connection Pooling ist wesentlich Ressourcenschonender. 16
17 Beispiel import javax.sql.datasource; import oracle.jdbc.pool.oracledatasource; DriverManager.registerDriver (new oracle.jdbc.driver.oracledriver()); OracleDataSource ods = new OracleDataSource(); ods.setdrivertype("thin"); ods.setservername("uebung.dbai.tuwien.ac.at"); ods.setportnumber(1521); ods.setdatabasename("uebung"); ods.setuser(dbuser); ods.setpassword(passwort); Connection conn = ods.getconnection(); Statement stmt = conn.createstatement(); 17
18 Eigenschaften/Methoden DB-Metadaten: mittels conn.getmetadata() Informationen über die DB bzw. die Verbindung, z.b.: DatabaseMetaData dbmeta = conn.getmetadata(); System.out.println("DB-ProductName: "+ dbmeta.getdatabaseproductname()); System.out.println("User: "+ dbmeta.getusername()); Transaktionssteuerung: AUTOCOMMIT on/off: conn.setautocommit(false); Transaktion beenden, z.b.: conn.commit(); (oder: conn.rollback();) Isolation Level setzen bzw. auslesen, z.b.: conn.gettransactionisolation() 18
19 Verbindungsabbau Ressourcenbelegung in der Datenbank: JDBC-Objekte können (abgesehen vom Speicher des Java-Programms) auch Ressourcen in der Datenbank belegen, z.b.: Oracle-Fehler "max cursors exceeded", wenn zu viele Statements gleichzeitig offen sind. Daher sollten Connections und Statements (und am besten auch ResultSets) immer explizit geschlossen werden, sobald sie nicht mehr benötigt werden, z.b.: rs.close(); stmt.close(); conn.close(); Hierarchie ResultSet < Statement < Connection, d.h.: Beim Schließen einer Connection werden implizit alle Statements dieser Connection geschlossen. 19
20 Fehlerbehandlung SQLException / SQLWarning: Die Methoden des JDBC-API werfen im Fehlerfall eine SQLException. Connections, Statements und ResultSets können auch SQLWarnings produzieren. Diese werden aber nicht geworfen sondern müssen aktiv angefordert werden mittels stmt.getwarnings() oder conn.getwarnings() Es kann auch mehrere SQLExceptions und SQLWarnings geben (als verkettete Liste). Felder von SQLException und SQLWarning: code: DB-spezifischer Fehlercode state: SQL-State laut SQL/CLI Standard msg: DB-spezifische Fehlermeldung 20
21 Beispiel für einen catch-block try { // JDBC-Aufrufe } catch (SQLException e) { while (e!= null) { System.out.println("Code = " + e.geterrorcode()); System.out.println("Message = " + e.getmessage()); System.out.println("State = " + e.getsqlstate()); e = e.getnextexception(); } } finally { try { if (rs!= null) { rs.close(); } if (stmt!= null) { stmt.close(); } if (conn!= null) { conn.close(); } } catch (SQLException e) { e.printstacktrace(); } // sauberer: finally mit geschachteltem try-catch } 21
22 Schreibzugriff mit SQL execute-methoden: Überblick Beispiel: DDL + DML
23 Execute-Methoden: Überblick executequery(): für SELECT-Anweisungen executequery() liefert ein ResultSet executeupdate(): für Schreibzugriff: DDL- und DML-Befehle executeupdate() liefert einen Integer-Wert (= Anzahl der betroffenen Tupel; bei DDL ist dieser Wert immer 0). Weitere Methoden: executebatch(): zuerst mehrere SQL-Befehle mittels addbatch() speichern und dann gemeinsam abschicken execute() 23
24 Beispiel: DDL + DML count = stmt.executeupdate ("DROP TABLE Abteilungen CASCADE CONSTRAINTS"); count = stmt.executeupdate ("CREATE TABLE Abteilungen (" + "AbtNr INTEGER PRIMARY KEY," + "Chef INTEGER," + "Bezeichnung VARCHAR(30)," + "Standort VARCHAR(30))"); count = stmt.executeupdate ("ALTER TABLE Abteilungen " + "ADD CONSTRAINT chef_fk FOREIGN KEY (Chef) " + "REFERENCES Mitarbeiter (PersNr)"); count = stmt.executeupdate ("INSERT INTO Abteilungen "+ "VALUES (1001, 102, 'Abteilung A', 'Ort A')"); 24
25 SELECT-Anweisungen ResultSet-Verarbeitung ResultSet-Metadaten SQL- vs. Java-Typen scrollable/updatable ResultSet
26 ResultSet-Verarbeitung SELECT-Anweisung verwendet die executequery() Methode. Diese liefert das Ergebnis als ResultSet. Das ResultSet ist ein Iterator, der mittels next() Methode die einzelnen Datensätze durchläuft. Der Zugriff auf die Spalten des aktuellen Datensatzes erfolgt durch typspezifische get-methoden des ResultSet, z.b.: getint(), getstring(), getdouble(), getdate(), Dieser Zugriff auf die Spalten geschieht entweder über den Spaltennamen oder über die Spaltenposition Default-mäßig dient ein ResultSet nur zum sequentiellen Durchlaufen in Vorwärts-Richtung und nur zum Lesen. Man kann aber auch explizit ein "scrollable" und/oder "updatable" ResultSet definieren. 26
27 Beispiel ResultSet rs = stmt.executequery("select "); while(rs.next()){ // Zugriff mittels Spalten-Position: String s = rs.getstring(1); // Name int i = rs.getint(2); // PersNr // oder: Zugriff mittels Spalten-Name: float f = rs.getfloat("gehalt"); double do = rs.getdouble("gehalt"); Date da = rs.getdate("geboren"); Timestamp t = rs.gettimestamp("geboren"); } 27
28 ResultSet-Metadaten Zu jedem ResultSet kann man MetaDaten abfragen ResultSetMetaData rsmd = rs.getmetadata(); Diese Metadaten enthalten Informationen über die Anzahl der Spalten einer Zeile sowie über die einzelnen Spalten (wie Name, JDBC-Typangabe, DB-spezifische Typbezeichnung, ) Beispiel: int anzahl = rsmd.getcolumncount(); for (int i = 1; i <= anzahl; i++) { columnname = rsmd.getcolumnname(i); dbspecifictype = rsmd.getcolumntypename(i); columntypeint = rsmd.getcolumntype(i); } 28
29 SQL- vs. Java-Typen (1) 1. Generische Typ-Bezeichnungen für SQL-Typen: Problem: Die verschiedenen DB-Systeme bieten zwar SQL- Typen mit ähnlicher Funktionalität an; diese Typen haben aber eventuell unterschiedliche Namen, z.b.: LONG RAW, IMAGE, BYTE, LONGBINARY sind im wesentlichen gleich. Für Portabilität wäre es wichtig, generische Bezeichnungen für die SQL-Typen zu verwenden, z.b. als return-wert von getcolumntype() (in ResultMetaData). Lösung in JDBC: Die Klasse Types (in java.sql) bietet eine Reihe von static int Definitionen für die verschiedenen SQL-Typen, z.b.: LONGVARBINARY für die SQL-Typen LONG RAW, IMAGE, etc. 29
30 SQL- vs. Java-Typen (2) 2. Konvertierung von Werten zw. Java-Typen und SQL-Typen. Problem: Selbst wenn man für die SQL-Typen einheitliche Bezeichner definiert, muss man erst festlegen, wie man Werte solcher SQL-Typen im Java-Programm speichert. Einfachste Lösung: Solange man z.b. bloß die Werte am Bildschirm ausgeben will, kann man alle SQL-Werte als Strings auffassen. Für die Weiterverarbeitung im Java- Programm ist das aber üblicherweise ungeeignet. Bessere Lösung: Type Mapping zwischen den generischen JDBC-Types und tatsächlichen Java-Typen, z.b.: siehe nächste Folie. 30
31 JDBC Type Java Type CHAR, VARCHAR, LONGVARCHAR NUMERIC, DECIMAL BIT, BOOLEAN TINYINT / SMALLINT / INTEGER / BIGINT REAL FLOAT, DOUBLE BINARY, VARBINARY, LONGVARBINARY DATE TIME TIMESTAMP String java.math.bigdecimal boolean byte / short / int / long float double byte[] java.sql.date java.sql.time java.sql.timestamp 31
32 Scrollable/Updatable ResultSet Default-Verhalten von ResultSets: Read-only nur Vorwärtsbewegung möglich (mittels rs.next()) Erweiterte Möglichkeiten bei ResultSets: "Type": Forward_only vs. scrollable "Concurrency Mode": read_only vs. updatable Das ResultSet Verhalten wird beim createstatement() Aufruf festgelegt: default-verhalten: conn.createstatement(); erweitert, z.b.: stmt = conn.createstatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 32
33 Navigation im Scrollable ResultSet Folgende Methoden stehen zur Verfügung: first() last() next() previous() beforefirst() afterlast() absolute(x): Sprung zur Zeile mit Zeilennummer x relative(x): Vorwärtsbewegung um x Zeilen (bei x < 0 erfolgt entsprechende Rückwärtsbewegung). 33
34 Schreibzugriff auf ResultSet (1) UPDATE: Ändern von einzelnen Spalten-Werten der aktuellen Zeile mittels Typ-spezifischer update-methode Festschreiben der geänderten, aktuellen Zeile mittels updaterow()-methode DELETE: mittels deleterow()-methode Beispiel: rs = stmt.executequery("select MatrNr,VorlNr,... FROM pruefen"); while(rs.next()) { l_note = rs.getfloat("note"); if (l_note == 5) rs.deleterow(); else if (l_note >= 2) { rs.updatefloat("note", l_note - 1); rs.updaterow(); } } 34
35 Schreibzugriff auf ResultSet (2) Warnung: Erzeugung eines updatable ResultSet funktioniert (bei Oracle) nur, wenn im SELECT Statement die Ergebnis- Attribute explizit aufgelistet werden. Bei SELECT * FROM... wird anstelle des updatable ResultSet nur ein scrollable ResultSet erzeugt. Beispiel: folgendere Code funktioniert nicht! rs = stmt.executequery("select * FROM pruefen"); while(rs.next()) { l_note = rs.getfloat("note"); if (l_note == 5) rs.deleterow();... } 35
36 Schreibzugriff auf ResultSet (3) INSERT: Es gibt eine eigene "insert row". Das Einfügen einer neuen Zeile geschieht durch Wertzuweisungen an die Spalten der "insert row". Festschreiben der neuen Zeile: mittels insertrow()- Methode. Beispiel: rs.movetoinsertrow(); rs.updatefloat("note", l_note - 1); rs.updateint("matrnr", l_matrnr); rs.updateint("persnr", neuerpruefer); rs.updateint("vorlnr", l_vorlnr); rs.insertrow(); rs.movetocurrentrow(); 36
37 prepared/callable Statements Prepared Statements Stored Procedures Callable Statements Escape Syntax
38 Prepared Statements Ziel: die gleiche Art von SQL-Statement jeweils mit teilweise unterschiedlichen Werten mehrmals ausführen., z.b.: SELECT * FROM Studenten WHERE Semester =? Lösung in JDBC: mittels "prepared Statement" ein SQL-Statement mit "bind variables" definieren. Vor jedem execute-aufruf werden diese bind variables mittels Typ-spezifischen Set-Methoden neu versorgt. Vorteil: Das DB-System muss manche Arbeiten nur ein Mal durchführen (z.b. Parsen, Anfrage-Optimierung) Bemerkung: Prepared Statements können im Prinzip für beliebige Arten von SQL- (oder auch PL/SQL-) Statements verwendet werden, z.b.: stored procedures mit ausschließlich INPUT-Parametern. 38
39 Beispiel PreparedStatement pstmt = conn.preparestatement ("SELECT * FROM Studenten WHERE Semester =? "); for (int j = 1; j <= 20; j++ ) { pstmt.setint (1, j); rs = pstmt.executequery(); System.out.println("Studenten im " + j + "-ten Semester: "); while(rs.next()){ System.out.print(rs.getString(1) + ", " ); System.out.print(rs.getString(2) + ", " ); System.out.println(rs.getString(3)); } } 39
40 Stored Procedures/Functions Definition der stored procedure: "ganz normal" mittels CREATE PROCEDURE in executeupdate()-methode Aufruf: am einfachsten mittels anonymem PL/SQL-Block: Prozedur ohne Parameter: direkt in executeupdate() Prozedur mit ausschließlich Input Parametern: Falls die Parameter-Werte erst zur Laufzeit feststehen, muss ein Prepared Statement mit bind variables verwendet werden. Prozedur mit Output Parametern oder Funktion: mittels Callable Statement (siehe übernächste Folie) 40
41 Beispiel count = stmt.executeupdate( "CREATE OR REPLACE PROCEDURE p_copy_student AS " + "CURSOR c_student IS SELECT * FROM Studenten s; " + "BEGIN " + " FOR rec_student IN c_student LOOP " + " INSERT INTO Studenten_Kopie " + " VALUES (rec_student.matrnr, " + " rec_student.name, rec_student.semester); " " END LOOP; " + "END;"); count = stmt.executeupdate( "BEGIN " + " p_copy_student;" + "END;" ); 41
42 Callable Statements Ziel: Bei Aufruf einer stored procedure mit Output-Parametern bzw. einer stored function werden Werte zurückgeliefert. Diese müssen in Java-Variablen umgespeichert werden. Lösung in JDBC: mittels "callable Statement" ein SQL-Statement mit "bind variables" definieren. Der Typ jeder Output-Variable (bzw. des Return-Werts einer stored function) muss "registriert" werden. Vor jedem execute-aufruf werden die Input-Variablen mittels Typ-spezifischen Set-Methoden neu versorgt. Nach jedem execute-aufruf werden die Output-Variablen mittels Typ-spezifischen Get-Methoden ausgelesen. 42
43 Beispiel (1) count = stmt.executeupdate( "CREATE OR REPLACE PROCEDURE p_copy_student " + " (l_sem IN NUMBER, l_anzahl OUT NUMBER) AS " + " CURSOR c_student IS SELECT * FROM Studenten s " + " WHERE s.semester = l_sem; " + "END;"); CallableStatement cstmt = conn.preparecall( "BEGIN " + " p_copy_student (?,?);" + "END;" ); cstmt.registeroutparameter(2, Types.INTEGER); 43
44 Beispiel (2) for (int j = 1; j <= 20; j++ ) { cstmt.setint (1, j); cstmt.executeupdate(); anzahl = cstmt.getint(2); if (anzahl!= 0) { System.out.println("Anzahl der Studenten im " + j + ". Semester: " + anzahl); } } 44
45 Escape Syntax (1) Problem: Die konkrete Syntax für manche SQL-Features sind in besonderer Weise DB-Hersteller spezifisch, z.b.: Aufruf von stored procedures, Built-in Funktionen, Date/Time-Format, etc. Ziel: trotzdem portablen Java-Code erstellen. Lösung in JDBC: mittels { } wird dem JDBC-Treiber mitgeteilt, dass er die (standardisierte) "escape syntax" in die DB-spezifische Syntax umwandeln soll. Schreibweise: {<keyword> }, wobei <keyword> z.b. folgende Werte haben kann: call (für Aufruf einer stored procedure/function) fn (für Aufruf einer built-in Funktion) d bwz. t (für Date bzw. Time-Angabe). 45
46 Escape Syntax (2) Beispiele: Prozedur-Aufruf: cstmt = conn.preparecall( "{ call p_copy_student (?,?) }"); Funktions-Aufruf: cstmt = conn.preparecall( "{? = call f_anzahl (?) }"); Datums-Angabe, Built-in Funktion: stmt.executeupdate("update Mitarbeiter "+ "SET Geboren = {d ' '}, " + " Gehalt = {fn ceiling( )} " + "WHERE PersNr = 1005"); Bemerkung: Wenn die DB-Hersteller einmal SQL vollständig unterstützen (und nicht nur den Entry Level), dann ist die Escape Syntax in JDBC überflüssig. 46
47 JDBC: autocommit = false Transaktionssteuerung in JDBC Oracle-Verhalten
48 Transaktionssteuerung in JDBC Autocommit vs. explizite Transaktionssteuerung: By default a Connection object is in auto-commit mode, which means that it automatically commits changes after executing each statement. If auto-commit mode has been disabled, the method commit must be called explicitly in order to commit changes; otherwise, database changes will not be saved. 48
49 Oracle-Verhalten User Guide: /b14355/basic.htm#i By default, data manipulation language (DML) operations are committed automatically as soon as they are run. This is known as the auto-commit mode. However, you can disable auto-commit mode with the following method call on the Connection conn.setautocommit(false); If you disable the auto-commit mode, then you must manually commit or roll back changes with the appropriate method call on the Connection conn.commit(); or conn.rollback(); 49
50 Oracle-Verhalten Beobachtetes Verhalten: Wenn die Session ohne conn.close() endet, wird implizit ein rollback durchgeführt. Wenn die Session sauber mittels conn.close() geschlossen wird, dann wird implizit ein commit durchgeführt!! Konsequenz: Auf keinen Fall auf ein bestimmtes Default Verhalten vertrauen und immer explizit commit() oder rollback() durchführen!! 50
Vorlesung Datenbanksysteme vom JDBC. Einführung JDBC-Verbindungen Schreibzugriff mit SQL SELECT Anweisungen prepared/callable Statements
Vorlesung Datenbanksysteme vom 17.10.2007 JDBC Einführung JDBC-Verbindungen Schreibzugriff mit SQL SELECT Anweisungen prepared/callable Statements Einführung DB-Anbindung an Programmiersprachen Embedded
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
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
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
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. 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
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
MehrDatenbankanwendungen (JDBC)
Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau
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
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
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.*;
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
Mehr11 Anwendungsprogrammierung
11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:
MehrDatenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung
Rückblick Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung Portabilität als wichtige Anforderung, d.h. RDBMS oder Programmiersprache soll leicht austauschbar sein Call-Level
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:
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
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)
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)
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
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
MehrDatenbanksysteme I Übung: JDBC. Jana Bauckmann
Datenbanksysteme I Übung: JDBC Jana Bauckmann Wo reicht SQL alleine nicht? 2 Web-Anwendungen Daten übersichtlich und schön präsentieren Komplizierte Fragestellungen Sind sich 2 Tupel ähnlich? Duplikaterkennung
MehrDatenbanksysteme I. Aufgabe 1: Erstellen einer Multimedia-Datenbank. Grundlage sind wiederum bereits implementierte Methoden aus Übungsblatt 6:
Universität Augsburg, Institut für Informatik Wintersemester 2010/2011 Prof. Dr. W. Kießling 17. Dez. 2010 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 7 Aufgabe 1: Erstellen einer Multimedia-Datenbank
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
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
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 /
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,
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
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
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:
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)
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?
MehrFunktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion
Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert
MehrDatabase. Creates. -- Kunde(knr, nname, vname, adresse:adresse.aid) CREATE TABLE Kunde ( NUMERIC(13) PRIMARY KEY,
Database Creates -- Adresse (aid, plz, ort, strasse, nummer) CREATE TABLE Adresse ( aid SERIAL PRIMARY KEY, plz SMALLINT NOT NULL, ort VARCHAR(40) NOT NULL, strasse VARCHAR(70) NOT NULL, nummer VARCHAR(20)
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
MehrKapitel 11: Anwendungsentwicklung
Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2015/2016 Kapitel 11: Anwendungsentwicklung Vorlesung:
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
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
MehrCursor erlauben eines zeilenweise Verarbeitung einer Tabelle oder eines Anfrageergebnisses in Transact-SQL
Cursor Cursor erlauben eines zeilenweise Verarbeitung einer Tabelle oder eines Anfrageergebnisses in Transact-SQL Cursor sind grob vergleichbar mit Iteratoren in modernen Programmiersprachen wie Java;
MehrZugriff auf die Datenbank. Ulf Leser Wissensmanagement in der Bioinformatik
Zugriff auf die Datenbank Ulf Leser Wissensmanagement in der Bioinformatik Wie komme ich an die Datenbank? Alternativen Alles in Java machen JDBC Treiber von Oracle herunterladen Java programmieren Java-basierte
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
MehrUniversität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 05. Dez F. Wenzel, L. Rudenko Lösungsblatt 7
Universität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 05. Dez. 2014 F. Wenzel, L. Rudenko Lösungsblatt 7 Aufgabe 1: JDBC 2.0 und Scrollable Result Sets Datenbanksysteme I Lösungen
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
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?
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 11: Anwendungsentwicklung
Skript zur Vorlesung Wintersemester 2005/2006 Kapitel 11: Anwendungsentwicklung Vorlesung: Dr. Matthias Schubert Übungen: Elke Achtert, Arthur Zimek Skript 2004 Christian Böhm http://www.dbs.informatik.uni-muenchen.de/lehre/dbs
Mehr1a) SQL Stored Procedure via IDs
1a) SQL Stored Procedure via IDs Erstellen Sie analog zu Aufgabe 2d) des ersten Übungsblatts eine SQL Stored Procedure, welche den Freundschaftsgrad zweier Benutzer eines sozialen Netzwerks aktualisiert.dazu
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
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 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. 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
MehrExercises for the course Databases and Information Systems I WS 2006/2007 Special exercise JDBC
Prof. Dr. Stefan Böttcher Exercises for the course Databases and Information Systems I WS 2006/2007 Special exercise JDBC 1. Preliminary configurations 1.1. Register ODBC database Chose Arbeitsplatz Systemsteuerung
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
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
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
Mehr10 Anwendungsprogrammierung
10 10 10.1 Programmiersprachenanbindung 10.2 10.3 PL/SQL 169 10 Teil X 0 Programmiersprachenanbindung 1 2 3 LINQ Sattler / Saake Datenbanksysteme Letzte Änderung: 11.10.2011 10 1 Programmiersprachenanbindung
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
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
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
MehrDatenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung
Rückblick Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung Portabilität als wichtige Anforderung, d.h. RDBMS oder Programmiersprache soll leicht austauschbar sein Call-Level
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
Mehr12. Programmierung in der Datenbank
12. Programmierung in der Datenbank Motivation für Programme in der Datenbank Aufbau von serverseitigen Programmen Ausnahmebehandlung Erstellung von Triggern 305 Erweiterung relationaler Einbettung von
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,
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
MehrDatenbanksysteme 2013
Datenbanksysteme 2013 Kapitel 8: Datenintegrität Vorlesung vom 14.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenintegrität Statische Bedingung (jeder Zustand) Dynamische
MehrSchnellübersichten. SQL Grundlagen und Datenbankdesign
Schnellübersichten SQL Grundlagen und Datenbankdesign 5 Datenbanken 2 6 Tabellen erstellen und verwalten 3 7 Daten einfügen, aktualisieren, löschen 4 8 Einfache Datenabfragen 5 9 Schlüsselfelder und Indizes
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
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
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
MehrÜbung PL/SQL Trigger Lösungen
Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde
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......................
MehrÜbung Datenbanksysteme I Embedded SQL, Stored Procedures, JDBC
Übung Datenbanksysteme I G-3.1.09, Campus III Hasso Plattner Institut Motivation Grenzen von SQL 1. Bedingte Anweisungen Erhöhe das Gehalt eines Arbeitsnehmers um 2%, falls er eine Belobigung erhalten
MehrAnwendungsentwicklung Datenbanken SQL. Stefan Goebel
Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten
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.
MehrSoftwareentwicklung mit JAVA EE
Softwareentwicklung mit JAVA EE Grundlagen: Datenbankprogrammierung Literatur T. Kudraß (Hrsg.): Taschenbuch Datenbanken, Hanser, 2007 DB-Programmierung-2 Einbettungstechniken Einbettung in 3GL Embedded
Mehr5.8 Bibliotheken für PostgreSQL
5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9
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
MehrÜben von DDL und DML. Ergebnis:
SQL DDL Üben von DDL und DML https://www.jdoodle.com/execute-sql-online Ergebnis: Befehlsgruppen in SQL DDL Data Definition Language DML Data Manipulation Language CREATE: Tabellen anlegen DROP: Tabellen
MehrEinbettung in SQL. Zwei Prinzipien: (1) Statische Einbettung
Einbettung in SQL Zwei Prinzipien: (1) Statische Einbettung - Vorübersetzer-Prinzip (Pre-Compiler) - In Programmcode integrierte SQL-Anweisungen werden durch den Precompiler übersetzt, d.h. in Prozeduraufrufe
MehrDBS: Anwendungsprogrammierung
Bisher: Grundlagen / Theorie DBS: Anwendungsprogrammierung Daten Schema Datenbank 1 Daten Schema Datenbank 2 DBMS Benutzer 1 Benutzer 2 Benutzer n Hier: Idee der Praxis Datenbanksysteme Benutzer Anwendungskontrollkomponenten
MehrRELATIONONALE DATENBANKEN MIT JDBC
RELATIONONALE DATENBANKEN MIT JDBC Christoph Süsens 07.05.2012 Inhalt Abbildungsverzeichnis...3 Java Database Connection JDBC...4 Herstellen einer Verbindung JDBC - DBMS...4 Treiber Installation Beispiel:
MehrAG Datenbanken und Informationssysteme Wintersemester 2006 / 2007
AG Datenbanken und Informationssysteme Wintersemester 2006 / 2007 Prof. Dr.-Ing. Dr. h. c. Theo Härder Fachbereich Informatik Technische Universität Kaiserslautern http://wwwdvs.informatik.uni-kl.de import
Mehr