Title: JDBC
1JDBC
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 Informationsgesells
chaft eine ausserordentlich grosse Rolle. Immer
grössere Bedeutung hat der Zugriff auf
Datenbanken über Netze auf TCP/IP-Basis.Programmi
eren 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
2Relationale Datenbanken
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).
3Tabellen
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 definiert identische
Zeilen sind nicht erlaubt Reihenfolge der
Zeilen bzw. Spalten ist beliebig.
4Relational
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).
5Datenbankentwurf
Der Datenbankentwurf (Datenmodell) ist eine der
wichtigsten Aufgaben, die der Datenbankentwickler
zu erfüllen hat.
6SQL
SQL
SQL einige wichtige SQL Anweisungen
1. Definitionen CREATE DATABASE demo CREATE
TABLE buch( ) DROP TABLE buch
2. Operationen USE demo SHOW TABLES EXPLAIN
TABLE buch
3. Queries Suchen von Daten in einer Tabelle
nach bestimmten Kriterien SELECT FROM buch
WHERE autor "Makler"
4. Datenmanipulation Einfügen, Löschen,
Aktualisieren von Datensätzen INSERT INTO buch
VALUES ("Meier", "Barbara") DELETE FROM buch
SET verlag "Addison" WHERE verlag "ad"
Buch S. 656
7MySQL
MySQL
MySQL ist ein vollwertiges Datenbanksystem aufge
baut 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
8MySQL Server
Eine MySQL Datenbank auf dem Server einrichten
Datenbankserver kllab.unibe.ch Anmeldung im
Command-Modus gtmysql h kllab.unibe.ch u user
p ?
Abmelden mysqlgtquit
password ?
Bereits von mir ausgeführt (für alle
user) mysqlgt 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
9MySQL Tabelle
Eine Tabele erstellen
mysqlgt create table buch ( -gt id integer not
null auto_increment primary key, -gt autor
char(25), -gt titel char(40), -gt jahr
year, -gt verlag char(20), -gt preis
float) Query OK, 0 rows affected (0.05 sec)
Buch S. 658
10explain, insert
mysqlgt 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)
11select
mysqlgtSELECT FROM buch --------------------
---------------------- id autor titel
jahr verlag preis ----------------------
-------------------- 1 Mankell Frost
2003 Zsolnay24.90 2 Draesler MySQL
2004 bhv 21.50 3 Mankell Sommer
2001 Addison59.20 --------------------------
----------------
12Abfragen
Abfragen mit SELECT Allgemeine Form SELECT
spalte .... Ausdruck .... FROM tabelle WHERE
Vergleichsaudruck ORDER BY spalte
ASCDESC 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
13Technologien
Zugriff auf MySQL Datenbanken verschiedene
Client-Server Technologien
Client-Applikationen Java-Datenbankapplikation
auf dem Client DBMS auf dem Server
14JDBC
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 Klassen import
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
15DbEx1
DbEx1.java
import java.sql.
Class.forName("org.gjt.mm.mysql.Driver") Connect
ion con DriverManager.getConnection(
"jdbcmysql//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
16Aufgaben
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 " ' ' " .
17DbEx2
Datenbank-Applikation mit einer grafischen
Benutzeroberfläche
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.
Buch S. 665
18Vorteile von JDBC
Vorteile von Java und JDBC
Einfachheit Leichte Handhabung bei
Installation und Versionenkontrolle
Sicherheit Stabilität Plattformunabhängig
keit Weiterverwendbarkeit verschiedener
Datenbanksysteme Kostengünstig (alle
Komponenten gratis vom Internet)