1 / 18

JDBC

JDBC. Learning By Doing. JDBC (Java DataBase Connectivity). Der Begriff JDBC bezeichnet ein von Sun entwickeltes Verfahren und eine zugehörige Klassenbibliothek, die es ermöglicht, mit Java auf relationale Datenbanken zuzugreifen.

mulan
Download Presentation

JDBC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JDBC Learning By Doing JDBC (Java DataBase Connectivity) Der Begriff JDBC bezeichnet ein von Sun entwickeltes Verfahren und eine zugehörige Klassenbibliothek, die es ermöglicht, mit Java auf relationale Datenbanken zuzugreifen Datenbanken spielen in unserer Informationsgesellschaft eine ausserordentlich grosse Rolle. Immer grössere Bedeutung hat der Zugriff auf Datenbanken über Netze auf TCP/IP-Basis.Programmieren mit JDBC ist ein wichtiger Anwendungsbereichder Java-Programmierung. Inhalt der Kapitels • Relationale Datenbanken • Server-Datenbanken mit MySQL • Zugriff auf Serverdatenbanken mit JDBC • Programmieren mit JDBC

  2. Relationale Datenbanken Learning By Doing Relationale Datenbanken DBMS (DataBase Management System) • Werkzeuge zur Strukturierung und Manipulation der Daten • Funktionen zur Eingabe, Veränderung, Suchen und Ausgabe der Daten • Hilfsmittel zur Sicherung, Wiederherstellung und Schützen von Daten. DBMS ist in der Regel auf einem Datenbankserver installiert, Clients greifen über ein Netzwerk zu. Ein DBMS kann mehrere Datenbanken verwalten.Zum Schutz der Daten müssen sich Clients authentifizieren (user, password).

  3. Tabellen Learning By Doing Tabellen Anschaulich werden Relationen als Tabellendargestellt, deren Zeilen Datensätze(records)enthalten, die die Informationsobjekte repräsentieren. Die Spalten genannt Felder (fields), repräsentieren die Eigenschaften (Attribute) dieser Objekte. •Attribute sind fest definiert• identische Zeilen sind nicht erlaubt• Reihenfolge der Zeilen bzw. Spalten ist beliebig.

  4. Relational Learning By Doing Darstellung mit zwei Tabellen, die in einer Relation stehen: Was bedeutet "relational" ? Bsp: Eine Universität erfasst alle Veranstaltungen in einer Tabelle: Nachteile: Datenredundanz(gleiche Daten werden mehrmals gespeichert) Dateninkonsistenz(verschiedene "Versionen" für die gleichen Daten).

  5. Datenbankentwurf Learning By Doing Der Datenbankentwurf(Datenmodell)ist eine der wichtigsten Aufgaben, die der Datenbankentwickler zu erfüllen hat.

  6. SQL SQL Learning By Doing Erstellt Datenbank demo Erstellt Tabelle buch Löscht die Tabelle buch Öffnet die Datenbank demo Zeigt alle Tabellen der aktuellen Datenbank Zeigt die Struktur der Tabelle buch an 5. Zugriffsrechte definieren GRANT ALL ONdemoTO"username"IDENTIFIED BY"password"; REVOKE .....Zugriffsrechte aufheben SQL: einige wichtige SQL Anweisungen 1. Definitionen CREATE DATABASEdemo; CREATE TABLEbuch( ); DROP TABLEbuch; 2. Operationen USEdemo; SHOW TABLES; EXPLAIN TABLEbuch; 3. Queries: Suchen von Daten in einer Tabelle nach bestimmten Kriterien SELECT * FROMbuchWHEREautor = "Makler";  4. Datenmanipulation: Einfügen, Löschen, Aktualisieren von Datensätzen INSERT INTObuchVALUES("Meier", "Barbara"); DELETE FROMbuchSETverlag = "Addison"WHEREverlag = "ad" Buch S. 656

  7. MySQL Learning By Doing MySQL MySQL ist ein vollwertiges Datenbanksystem • aufgebaut auf der Grundlage von SQL • gratis im Internet (www.mysql.com), läuft auf den meisten Plattformen • MySQL kann lokal oder auf einem Server installiert werden • MySQL-Befehle können im Command-Modus eingegeben werden, es gibt auch Tools mit grafischer Benutzeroberfläche (Navicat, MySQL Manager) Die wichtigsten Datentypen Buch S. 657

  8. MySQL Server Learning By Doing 1) Database öffnen: mysql> use sdb2;  Database changed 2) Eine MySQL Datenbank auf dem Server einrichten Datenbankserver: kllab.unibe.ch Anmeldung im Command-Modus: >mysql –h kllab.unibe.ch –u user –p  Abmelden: mysql>quit password  Bereits von mir ausgeführt (für alle user): mysql> CREATE DATABASE sdb2; GRANT ALL ON sdb2.* TO "sdb2" IDENTIFIED BY "db2"; • Gross-/Kleinschreibweise wird bei den Befehlen nicht berücksichtigt. • jede Zeile endet mit ;

  9. MySQL Tabelle Learning By Doing mysql>show tables; +----------------+ | Tables_in_sdb2 | +----------------+ | buch | +----------------+ |1 rows in set (0.02 sec) 3) 4) Eine Tabele erstellen: mysql>create table buch ( -> id integer not null auto_increment primary key, ->autor char(25), ->titel char(40), ->jahr year, ->verlag char(20), ->preis float); Query OK, 0 rows affected (0.05 sec) Buch S. 658

  10. explain, insert Learning By Doing mysql>INSERT INTO buch (autor, titel, jahr, verlag, preis) > VALUES ("Mankell", "Frost", 2003, "Zsolnay", 24.90); Query OK, 1 row affected (0.00 sec) 5) 6) mysql>EXPLAIN buch; +--------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+----------+------+-----+---------+----------------+ | id | int(11) | | PRI | NULL | auto_increment | | autor | char(25) | YES | | NULL | | | titel | char(40) | YES | | NULL | | | jahr | year(4) | YES | | NULL | | | verlag | char(25) | YES | | NULL | | | preis | float | YES | | NULL | | +--------+----------+------+-----+---------+----------------+ 6 rows in set (0.05 sec)

  11. select Learning By Doing mysql>SELECT * FROM buch WHERE autor = "Mankel"; +----+---------+---------+------+-------+-------+ | id | autor | titel | jahr |verlag |preis +----+---------+---------+------+--------+------+ | 1 | Mankell | Frost | 2003 |Zsolnay|24.90 | 3 | Mankell | Sommer | 2001 |Addison|59.20 +----+---------+---------+------+-------+-------+ 7) 8) mysql>SELECT * FROM buch; +----+---------+---------+------+-------+-------+ | id | autor | titel | jahr |verlag |preis +----+---------+---------+------+--------+------+ | 1 | Mankell | Frost | 2003 |Zsolnay|24.90 | 2 | Draesler| MySQL | 2004 |bhv |21.50 | 3 | Mankell | Sommer | 2001 |Addison|59.20 +----+---------+---------+------+-------+-------+

  12. Abfragen Learning By Doing Abfragen mit SELECT Allgemeine Form: SELECT spalte .... Ausdruck .... FROM tabelle WHERE Vergleichsaudruck ORDER BY spalte [ASC|DESC] LIMIT Anzahl Zeilen Weitere Auswahlmöglichkeiten: SELECT * FROM buch WHERE autor = "Mankell" AND titel = "Frost"; SELECT * FROM buch WHERE jahr = 2002 OR jahr = 2004; SELECT * FROM buch WHERE autor IN ("Mankell", "Draessler", "Bauer" ); SELECT * FROM buch WHERE jahr BETWEEN 2002 AND 2004;

  13. Technologien Learning By Doing Webdatenbanken Alle Installationen auf dem Server, auf dem Client nur Browser Zugriff auf MySQL Datenbanken verschiedene Client-Server Technologien Client-Applikationen Java-Datenbankapplikation auf dem Client DBMS auf dem Server

  14. JDBC Learning By Doing Der Zugriff erfolgt in folgenden Schritten: Client (Java-Applikation) Datenbankserver mit MySQL 4. SQL-Query wird ausgeführt Statement 5. Resultset wird zurückgeschickt Resultset JDBC (Java DataBase Connectivity) JDBC enthält Objekte und Methoden, die den Zugriff auf Datenbanken ermöglichen.Die Java-Applikation läuft auf einem Client-Rechner, der mit Hilfe des entsprechenden JDBC-Treibers eine Verbindung zu einer auf einem Remote-Server liegenden Datenbank aufbaut. JDBC-Treiber für MySQL: mysql-connector-java-3.0.8-stable-bin.jar(von "http://dev.mysql.com/downloads/connector/" herunterladen und in das Verzeichnis jre/lib/ext des JDK's kopieren). 1.Importieren der notwendigen Klassenimport java.sql.*; 2.JDBC-Treiber laden 3. Verbindung zur Datenbank erstellen 4. Statement-Objekt erstellen und SQL-Statement definieren 7. Ergebnisse anzeigen 8. Verbindung zur Datenbank schliessen Buch S. 662

  15. DbEx1 Learning By Doing importieren der notwendigen Klassen JDBC-Treiber laden import java.sql.*; Verbindung zur Datenbank erstellen Class.forName("org.gjt.mm.mysql.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://130.92.13.49/sdb2/","sdb2","db2"); Statement-Objekt erstellen Statement stmt = con.createStatement(); Statement ausführen ResultSet rs = stmt.executeQuery("SELECT * FROM buch"); Ergebnis anzeigen stmt.close(); con.close(); Statement und Verbindung schliessen DbEx1.java import java.sql.*; Class.forName("org.gjt.mm.mysql.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://130.92.13.49/sdb2/","sdb2","db2"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM buch"); while (rs.next()) + rs.getString("titel") + ", erschienen " + rs.getInt("jahr") + " bei " + rs.getString("verlag")); stmt.close(); con.close(); Buch S. 663

  16. Aufgaben Learning By Doing Aufgaben Ergänzen Sie die Datenbankapplikation DbEx1.java mit verschiedenen SQL-Abfragen: ResultSet rs = stmt.executeQuery("SELECT * FROM buch WHERE autor = 'Mankell'"); ResultSet rs = stmt.executeQuery("SELECT * FROM buch WHERE jahr = 2003 AND verlag = 'Zsolnay'"); Achten Sie dabei auf die doppelten Anführungszeichen " ' ' " .

  17. DbEx2 Learning By Doing Datenbank-Applikation mit einer grafischen Benutzeroberfläche Die Datebank-Applikation DbEx2.javamit der zugehörigen Klasse DbDialog.java enthält alle für die Praxis wichtigen Datenbankoperationen (Navigation, Update, Insert, Delete). Ihre Aufgabe ist, diese Applikation so anzupassen, so dass Sie mit Ihrer Datenbank kommuniziert. Fügen Sie einige Datensätze hinzu und testen Sie beide Applikationen DbEx1.java und DbEx2.java. Buch S. 665

  18. Vorteile von JDBC Learning By Doing Vorteile von Java und JDBC: • Einfachheit • Leichte Handhabung bei Installation und Versionenkontrolle • Sicherheit • Stabilität • Plattformunabhängigkeit • Weiterverwendbarkeit verschiedener Datenbanksysteme • Kostengünstig (alle Komponenten gratis vom Internet)

More Related