Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Learning By Doing JDBC (Java DataBase Connectivity) Der Begriff JDBC bezeichnet ein von Sun entwickeltes Verfahren und eine zugehörige Klassenbibliothek,

Ähnliche Präsentationen


Präsentation zum Thema: "Learning By Doing JDBC (Java DataBase Connectivity) Der Begriff JDBC bezeichnet ein von Sun entwickeltes Verfahren und eine zugehörige Klassenbibliothek,"—  Präsentation transkript:

1

2 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 JDBC 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 Anwendungsbereich der Java-Programmierung. Inhalt der Kapitels Relationale Datenbanken Server-Datenbanken mit MySQL Zugriff auf Serverdatenbanken mit JDBC Programmieren mit JDBC

3 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). Relationale Datenbanken

4 Learning By Doing Tabellen Anschaulich werden Relationen als Tabellen dargestellt, 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 definiertidentische Zeilen sind nicht erlaubt Reihenfolge der Zeilen bzw. Spalten ist beliebig. Tabellen

5 Learning By Doing 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). Darstellung mit zwei Tabellen, die in einer Relation stehen: Relational

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

7 Learning By Doing 1. Definitionen CREATE DATABASE demo; CREATE TABLE buch( ); DROP TABLE buch; SQL: einige wichtige SQL Anweisungen Buch S Datenmanipulation: Einfügen, Löschen, Aktualisieren von Datensätzen INSERT INTO buch VALUES ("Meier", "Barbara"); DELETE FROM buch SET verlag = "Addison" WHERE verlag = "ad" 3. Queries: Suchen von Daten in einer Tabelle nach bestimmten Kriterien SELECT * FROM buch WHERE autor = "Makler"; 2. Operationen USE demo; SHOW TABLES; EXPLAIN TABLE buch; 5. Zugriffsrechte definieren GRANT ALL ON demo TO "username" IDENTIFIED BY "password"; REVOKE..... Zugriffsrechte aufheben Öffnet die Datenbank demo Zeigt die Struktur der Tabelle buch an Zeigt alle Tabellen der aktuellen Datenbank Löscht die Tabelle buch Erstellt Tabelle buch Erstellt Datenbank demo SQL

8 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 MySQL

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

10 Learning By Doing 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 Eine Tabele erstellen: 3) mysql> show tables; | Tables_in_sdb2 | | buch | |1 rows in set (0.02 sec) 4) MySQL Tabelle

11 Learning By Doing 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 | | rows in set (0.05 sec) 5) mysql> INSERT INTO buch (autor, titel, jahr, verlag, preis) > VALUES ("Mankell", "Frost", 2003, "Zsolnay", 24.90); Query OK, 1 row affected (0.00 sec) 6) explain, insert

12 Learning By Doing 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| ) 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| ) select

13 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; Abfragen

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

15 Client (Java-Applikation) Datenbankserver mit MySQL Der Zugriff erfolgt in folgenden Schritten: Learning By Doing 3.Verbindung zur Datenbank erstellen Statement Resultset 8.Verbindung zur Datenbank schliessen 2.JDBC-Treiber laden 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 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 Klassen import java.sql.*; 4.Statement-Objekt erstellen und SQL-Statement definieren 7.Ergebnisse anzeigen 4. SQL-Query wird ausgeführt 5. Resultset wird zurückgeschickt Buch S. 662 JDBC

16 Learning By Doing DbEx1.java Class.forName("org.gjt.mm.mysql.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql:// /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(); Connection con = DriverManager.getConnection( "jdbc:mysql:// /sdb2/","sdb2","db2"); Verbindung zur Datenbank erstellen Statement stmt = con.createStatement(); Statement-Objekt erstellen ResultSet rs = stmt.executeQuery("SELECT * FROM buch"); Statement ausführen stmt.close(); con.close(); Statement und Verbindung schliessen import java.sql.*; Class.forName("org.gjt.mm.mysql.Driver"); JDBC-Treiber laden importieren der notwendigen Klassen import java.sql.*; Ergebnis anzeigen DbEx1 Buch S. 663

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

18 Learning By Doing Buch S. 665 Die Datebank-Applikation DbEx2.java mit 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. Datenbank-Applikation mit einer grafischen Benutzeroberfläche DbEx2

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


Herunterladen ppt "Learning By Doing JDBC (Java DataBase Connectivity) Der Begriff JDBC bezeichnet ein von Sun entwickeltes Verfahren und eine zugehörige Klassenbibliothek,"

Ähnliche Präsentationen


Google-Anzeigen