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 Anwendungsbereich der Java-Programmierung. Inhalt der Kapitels • Relationale Datenbanken • Server-Datenbanken mit MySQL • Zugriff auf Serverdatenbanken mit JDBC • Programmieren mit JDBC Java-Applikation JDBC JD BC -Treiber D atenbank Server
18
Embed
Learning By Doing JDBC (Java DataBase Connectivity) Der Begriff JDBC bezeichnet ein von Sun entwickeltes Verfahren und eine zugehörige Klassenbibliothek,
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
Java-Applikation
JDBC
JDBC-Treiber
Datenbank
Server
Learning By Doing
Relationale Datenbanken
Client 1
Client 2
Client 3
DBMS
Data
SQL-Statement
Result set
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
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 definiert• identische Zeilen sind nicht erlaubt• Reihenfolge der Zeilen bzw. Spalten ist beliebig.
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:
Learning By Doing
Der Datenbankentwurf (Datenmodell) ist eine der wichtigsten Aufgaben, die der Datenbankentwickler zu erfüllen hat.
Dozenten
Institute
Lernveranstaltungen
Raumbelegung
Inventar
Datenbankentwurf
Learning By Doing
1. Definitionen
CREATE DATABASE demo;CREATE TABLE buch( ); DROP TABLE buch;
SQL: einige wichtige SQL Anweisungen
Buch S. 656
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"
3. Queries: Suchen von Daten in einer Tabelle nach bestimmten Kriterien
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+----+---------+---------+------+-------+-------+
7)
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+----+---------+---------+------+-------+-------+
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
Learning By Doing
Zugriff auf MySQL Datenbankenverschiedene Client-Server Technologien
Client 1JDBC, Java
DBMSMySQL
SQL-Statement
Result set
Client 2JDBC, Java
Client 3JDBC, Java
Daten
Datenbankserver Client-Applikationen
Java-Datenbankapplikation auf dem Client
DBMS auf dem Server
Webdatenbanken
Alle Installationen auf dem Server, auf dem Client nur Browser
Client 1Browser
DBMSMySQL
HTTP-Request
HTTP-Response
Client 2Browser
Client 3Browser
Daten
Webserver
Webserver mit Plugins(Tomcat, PHP)
JSP-EngineServlet
Java, JDBC
Technologien
Client (Java-Applikation)
Datenbankserver mit MySQL
Daten
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-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.*;
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
Learning By Doing
DbEx1.java
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();
Connection con = DriverManager.getConnection( "jdbc:mysql://130.92.13.49/sdb2/","sdb2","db2");
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
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
Aufgaben
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
Learning By Doing
• Einfachheit
• Leichte Handhabung bei Installation und Versionenkontrolle