JDBC (Java DataBase Connectivity)

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

1 Kapitel 9: Datenbankapplikationen. 2 Datenbankapplikationen MS Access Embedded SQL JDBC Application JDBC Applet Java Servlet Java Server Pages Cold.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Relationale Datenbank MySQL
Objekt – Relationales – Modell Tomasz Makowski IN
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
MySQL.
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Prof. Dr. Andreas Schmietendorf
Internet-Datenbanken
Allgemeine Technologien II
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Ruby on Rails im Überblick
FH-Hof SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
Java: Grundlagen der Sprache
SQL als Abfragesprache
SQL als Abfragesprache
MySQL Der Einstieg.
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Datenbankanwendungen mit Java und JDBC
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
JDBC Konzepte Realisierung von Zugriffen
Transaction Script Software Component Technology for Distributed Applications.
Datenintegrität Referentielle Integrität create table
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
JDBC EDV JDBC.
Datenbanken 13: Objekt-Klasse-Datenbank
Datenbanken 10: Einfügen, Ändern, Löschen
Einführung MySQL mit PHP
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
2.2 Definition eines Datenbankschemas (SQL-DDL)
JDBC: JAVA Database Connectivity
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Wir bauen uns eine Webapplikation!
Learning By Doing Thema 1: Dynamische Webseiten und Online Datenbanken (Jarka Arnold) Thema 2: Simulationen, Sound, Schnittstellen (Aegidius Plüss) Thema.
Relationale Datenbanken III
Datenbanken?.
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Sesame Florian Mayrhuber
Adaption von K-Means Algorithmen an Datenbanken
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Freiwillige Feuerwehr der Stadt Perg
Von Isabelle Spörl und Simon Schausberger
Learning By Doing WebStart Buch S.765 Verfahren, Java-Applikationen über das Internet an die Benützer zu verteilen. Die Java-Applikation wird auf dem.
SQLite und XML in PHP 5.
Internet Praktikum Aufgabe Kopieren Sie die bitte das von Ihnen erstellte Kino-Projekt in Ihr Gruppenverzeichnis auf den HTTP-Server. \\SERVER1\VWA??\
Datenbankanbindung mit
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
Termin Festlegung Einführung MySQL Runterladen MySQL, Pentaho Design Studio Betrachtung Pentaho
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Dynamische Webseiten mit MySql und PHP
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
Datenbank für Skriptenverkauf
PHPmyadmin Maya Kindler 6c.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
(Structured Query Language)
 Präsentation transkript:

JDBC (Java DataBase Connectivity) 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

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).

Tabellen Learning By Doing 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.

Was bedeutet "relational" ? 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:

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

SQL: einige wichtige SQL Anweisungen Learning By Doing SQL: einige wichtige SQL Anweisungen 1. Definitionen CREATE DATABASE demo; CREATE TABLE buch( ); DROP TABLE buch; Erstellt Datenbank demo Erstellt Tabelle buch Löscht die Tabelle buch 2. Operationen USE demo; SHOW TABLES; EXPLAIN TABLE buch; Öffnet die Datenbank demo Zeigt alle Tabellen der aktuellen Datenbank Zeigt die Struktur der Tabelle buch an 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" 5. Zugriffsrechte definieren GRANT ALL ON demo TO "username" IDENTIFIED BY "password"; REVOKE ..... Zugriffsrechte aufheben Buch S. 656

MySQL Die wichtigsten Datentypen Learning By Doing 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

Eine MySQL Datenbank auf dem Server einrichten MySQL Server 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  Abmelden: mysql>quit 1) password  Bereits von mir ausgeführt (für alle user): mysql> CREATE DATABASE sdb2; GRANT ALL ON sdb2.* TO "sdb2" IDENTIFIED BY "db2"; Database öffnen: mysql> use sdb2;  Database changed 2) • Gross-/Kleinschreibweise wird bei den Befehlen nicht berücksichtigt. • jede Zeile endet mit ;

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

mysql> EXPLAIN buch; explain, insert Learning By Doing 5) 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) 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)

mysql>SELECT * FROM buch; Learning By Doing 7)  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  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 8)

Abfragen mit SELECT Learning By Doing Allgemeine Form:   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;

Zugriff auf MySQL Datenbanken Technologien 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

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

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

Aufgaben Learning By Doing 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 " ' ' " .

Datenbank-Applikation mit einer grafischen Benutzeroberfläche DbEx2 Learning By Doing 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

Vorteile von Java und JDBC: 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)