Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einführung
2 Mathematische und technische Grundlagen
3 Hardware
4 Netzwerkgrundlagen
5 Betriebssystemgrundlagen
6 Windows
7 Linux
8 Mac OS X
9 Grundlagen der Programmierung
10 Konzepte der Programmierung
11 Software-Engineering
12 Datenbanken
13 Server für Webanwendungen
14 Weitere Internet-Serverdienste
15 XML
16 Weitere Datei- und Datenformate
17 Webseitenerstellung mit (X)HTML und CSS
18 Webserveranwendungen
19 JavaScript und Ajax
20 Computer- und Netzwerksicherheit
A Glossar
B Zweisprachige Wortliste
C Kommentiertes Literatur- und Linkverzeichnis
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
IT-Handbuch für Fachinformatiker von Sascha Kersken
Der Ausbildungsbegleiter
Buch: IT-Handbuch für Fachinformatiker

IT-Handbuch für Fachinformatiker
Rheinwerk Computing
1216 S., 6., aktualisierte und erweiterte Auflage, geb.
34,90 Euro, ISBN 978-3-8362-2234-1
Pfeil 12 Datenbanken
Pfeil 12.1 Die verschiedenen Datenbanktypen
Pfeil 12.1.1 Einzeltabellendatenbanken
Pfeil 12.1.2 Relationale Datenbanken
Pfeil 12.1.3 Objektorientierte Datenbanken
Pfeil 12.2 MySQL – ein konkretes RDBMS
Pfeil 12.2.1 MySQL installieren und konfigurieren
Pfeil 12.2.2 Erste Schritte mit dem mysql-Client
Pfeil 12.3 SQL-Abfragen
Pfeil 12.3.1 Datenbanken und Tabellen erzeugen
Pfeil 12.3.2 Auswahlabfragen
Pfeil 12.3.3 Einfüge-, Lösch- und Änderungsabfragen
Pfeil 12.3.4 Transaktionen
Pfeil 12.4 MySQL-Administration
Pfeil 12.4.1 mysqladmin
Pfeil 12.4.2 Benutzerverwaltung
Pfeil 12.4.3 Import und Export von Daten, Backups
Pfeil 12.4.4 Konfigurationsdateien
Pfeil 12.4.5 Log-Dateien
Pfeil 12.4.6 Replikation
Pfeil 12.5 Grundlagen der Datenbankprogrammierung
Pfeil 12.6 Zusammenfassung

Rheinwerk Computing - Zum Seitenanfang

12.5 Grundlagen der Datenbankprogrammierung

Beinahe jede bedeutende Programmiersprache besitzt eine Schnittstelle zu einer oder sogar mehreren Datenbanken. Es ist erheblich praktischer, Daten für verteilte Anwendungen zentral in einer Datenbank abzulegen und aus Programmen darauf zuzugreifen, als diese Daten in einer selbst entwickelten Datenstruktur zu speichern.

Die meisten Datenbankanbindungen für Programmiersprachen sind in der Lage, auf mehrere unterschiedliche SQL-Datenbanken zuzugreifen. In diesem Abschnitt finden Sie eine kurze Einführung in die Datenbankschnittstelle JDBC, über die Sie aus Java-Programmen heraus Zugriff auf beinahe beliebige Datenbanken haben.

JDBC ist keine Schnittstelle zu einer bestimmten Datenbank, sondern eine unabhängige, allgemeine API, die mit vielen unterschiedlichen Treibern zusammenarbeitet. Die meisten dieser Treiber stammen von den jeweiligen Datenbankanbietern selbst, andere werden von Drittanbietern geliefert. An dieser Stelle sollen zwei dieser Treiber explizit erwähnt werden:

  • Die JDBC-ODBC-Bridge ist bereits von Haus aus in das Java SDK eingebaut und bietet Zugriff auf beliebige Datenbanken mit ODBC-Anbindung. ODBC (Open Database Connectivity)[Anm.: Die Entwickler von Java werden nicht müde zu betonen, dass JDBC nicht für »Java Database Connectivity« steht, sondern für nichts Konkretes.] ist eine von Microsoft entwickelte Technologie, die seit Langem in alle Windows-Versionen eingebaut ist und den Zugriff auf unzählige Datenbanken bereitstellt. Die JDBC-ODBC-Bridge war vor allem bei der Einführung von JDBC wichtig, weil dadurch indirekt eine Vielzahl von Datenbanktreibern zur Verfügung stand.

    Wenn Sie ODBC verwenden möchten, müssen Sie zunächst über die Windows-Systemsteuerung eine Datenbank als ODBC-Datenquelle einrichten.

  • MySQL Connector/J stammt von MySQL ab, ist ein Open-Source-Projekt wie MySQL selbst und kann von der MySQL-Website heruntergeladen werden. Nachdem Sie das Archiv entpackt haben, finden Sie im äußersten Verzeichnis eine Datei namens mysql-connector-java-5.1.25.tar.gz (oder eine höhere Version als 5.1.25). Nach dem Entpacken müssen Sie den Pfad zum entsprechenden Verzeichnis zu Ihrem CLASSPATH hinzufügen (siehe hierzu Kapitel 9, »Grundlagen der Programmierung«).

Um JDBC in Ihrem Java-Programm zu verwenden, müssen Sie zuerst die JDBC-Klassen importieren:

import java.sql.*;

Einen JDBC-Treiber können Sie über Class.forName() laden. Das sieht für die JDBC-ODBC-Bridge folgendermaßen aus:

try {
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException e) {
System.out.println
("JDBC-ODBC-Treiber nicht gefunden.");
}

Die entscheidende Zeile für das Laden von MySQL Connector/J sieht entsprechend so aus:

Class.forName("com.mysql.jdbc.Driver");

Ein einfaches Class.forName ("Treiber") funktioniert unter Umständen nicht richtig. Sicherer ist folgende Variante:

Class.forName("Treiber").newInstance();

Der nächste Schritt besteht darin, über den Treiber eine Verbindung zur gewünschten Datenbank herzustellen. Dafür besitzt jeder JDBC-Treiber sein eigenes JDBC-URL-Schema. Eine Verbindung über die JDBC-ODBC-Bridge, in diesem Beispiel zu einer Datenbank namens supermarkt, funktioniert folgendermaßen:

Connection conn = DriverManager.getConnection
("jdbc:odbc:supermarkt", "user", "pass");

Statt user und pass müssen Sie selbstverständlich Ihren Usernamen und Ihr Passwort eintragen, die Sie zum Zugriff auf die Datenbank berechtigen. Einige Datenbanksysteme besitzen keinen Passwortschutz; hier müssen Sie zwei leere Strings ("") übergeben.

MySQL-Connector/J-URLs sehen ein wenig anders aus. Hier müssen Sie den Netzwerknamen des Rechners angeben, auf dem die Datenbank läuft. Wenn der MySQL-Server auf Ihrem eigenen Rechner läuft, erfolgt ein Zugriff auf die Datenbank supermarkt (in diesem Fall ohne Benutzername und Passwort) wie folgt:

Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost/supermarkt", "", "");

localhost ist die Netzwerkbezeichnung für den lokalen Rechner. Falls sie auf Ihrem Rechner nicht unterstützt wird, können Sie stattdessen die numerische Adresse 127.0.0.1 verwenden.

Nachdem die Verbindung hergestellt wurde, benötigen Sie ein Statement-Objekt, das dazu verwendet wird, SQL-Abfragen an die Datenbank weiterzugeben. Das Objekt wird folgendermaßen eingerichtet:

Statement st = conn.createStatement();

Über das Statement-Objekt (hier st) können Sie SQL-Abfragen ausführen. Es besitzt die Methoden executeQuery() für Auswahlabfragen und execute() für alle Abfragen, die Änderungen an der Datenbank vornehmen. Beispielsweise können Sie folgendermaßen einen Datensatz in die Tabelle artikel einfügen:

try {
st.execute ("INSERT INTO ARTIKEL (ARTNAME, PREIS,
MWST) VALUES (\"Tomaten\", 199, \"7\")");
}

catch (SQLException e) {
// SQL-Abfrage-Ausnahme behandeln
}

Die Methode executeQuery() liefert ein ResultSet-Objekt zurück, aus dem Sie die Ergebnisdatensätze auslesen können. Die folgende Auswahlabfrage liest alle Datensätze aus der Tabelle artikel:

ResultSet rs = st.executeQuery ("SELECT * FROM ARTIKEL");

Mit der ResultSet-Methode next() können Sie das Ergebnis nun Zeile für Zeile abarbeiten. Um die einzelnen Felder eines Datensatzes auszulesen, bietet ResultSet eine Reihe verschiedener get-Methoden an, die die verschiedenen SQL-Datentypen in passende Java-Datentypen umsetzen. Beispielsweise können Sie die Inhalte von artikel aus dem soeben ermittelten ResultSet folgendermaßen auf der Konsole ausgeben:

while (rs.next()) {
System.out.print ("Artikel: "
+ rs.getString ("ARTNAME") + " ");
System.out.print ("Preis: "
+ rs.getInt ("PREIS") + " ");
System.out.println ("MWSt-Satz: "
+ rs.getString ("MWST"));
}

Tabelle 12.9 zeigt die wichtigsten SQL-Datentypen, die korrespondierenden Java-Datentypen und die zuständigen get-Methoden, um sie aus einem ResultSet zu lesen.

Tabelle 12.9 Wichtige SQL-Datentypen, ihre Java-Entsprechung und die passenden ResultSet-get-Methoden

SQL-Datentyp Java-Datentyp get-Methode

CHAR

String

getString()

VARCHAR

String

getString()

INT

int

getInt()

FLOAT

double

getDouble()

DOUBLE

double

getDouble()

DATE

java.sql.Date

getDate()

TIME

java.sql.Time

getTime()

TIMESTAMP

java.sql.Timestamp

getTimestamp()

BLOB

java.sql.Blob

getBlob()

Falls Sie die Datenbankressourcen in Ihrem Java-Programm nicht mehr benötigen, sollten Sie sie nacheinander mithilfe ihrer close()-Methoden schließen, und zwar zuerst das ResultSet, dann das Statement und zum Schluss die Datenbankverbindung selbst:

rs.close();
st.close();
conn.close();

Ein zusammenhängendes Beispiel für die JDBC-Programmierung finden Sie übrigens in Kapitel 15, »XML«. Weitere Beispiele für Datenbankschnittstellen befinden sich in Kapitel 18, »Webserveranwendungen«, in dem die MySQL-Datenbankanbindungen der Web-Programmiersprache PHP sowie des Frameworks Ruby on Rails erläutert werden.

CouchDB im Schnellüberblick

Einen ganz anderen Weg als relationale Datenbanken gehen die dokumentbasierten Datenbanken. Es gibt sie im Grunde seit vielen Jahren; ein bekanntes kommerzielles Beispiel ist etwa Lotus Notes. Erst in letzter Zeit beginnt sich dieses Paradigma jedoch auch im Bereich der Webanwendungen zu verbreiten. Hier kommt vor allem das Open-Source-Projekt Apache CouchDB zum Einsatz. Die Datenbank wurde 2005 veröffentlicht und kurz darauf von der Apache Software Foundation als Projekt aufgenommen. Die Software ist in der funktionalen Programmiersprache Erlang geschrieben.

In einer dokumentenbasierten Datenbank wie CouchDB gibt es keine Datensätze, sondern nur einzelne Dokumente. Es handelt sich um eine Sammlung frei definierbarer Felder, die jeweils einen Namen und einen Wert mit einem bestimmten Datentyp enthalten. Selbstverständlich besteht die Möglichkeit, beliebig viele Dokumente mit identischer Struktur zu erstellen. Auf diese Weise lassen sich im Grunde auch relationale Abfragen abbilden, allerdings ohne die Flexibilität des dokumentenbasierten Ansatzes einzubüßen.

CouchDB kommuniziert als eigenständiger Webserver mit der Außenwelt; sein Standard-TCP-Port ist 5984. Anfragen werden im REST-Format gestellt, das heißt, es kommen je nach Anfragetyp verschiedene HTTP-Methoden zum Einsatz:

  • PUT zum Erzeugen von Datenbanken und Dokumenten
  • POST zum Ändern von Datenbanken und Dokumenten
  • DELETE zum Löschen von Datenbanken und Dokumenten
  • GET zum Lesen von Informationen, zum Beispiel für Abfragen

Alle Antworten von CouchDB erfolgen im JSON-Format (JavaScript Object Notation). Dieses Format wird in Abschnitt 19.8, »Ajax«, genau erläutert. Aufgrund der HTTP-REST-JSON-Architektur wird CouchDB auch als NoSQL-Datenbank bezeichnet.

Obwohl praktisch alle wichtigen Programmiersprachen mit Bordmitteln HTTP-Anfragen stellen und JSON verarbeiten können, stellen die CouchDB-Entwickler Bibliotheken für eine Reihe wichtiger Sprachen bereit, zum Beispiel für JavaScript, Java, PHP, Ruby und Python.

Die meisten CouchDB-Installationen sind mit einer Administrationsoberfläche namens Futon ausgestattet, die sich im Browser über den besagten Port 5984 ansprechen lässt. Ansonsten kann Futon leicht nachinstalliert werden.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück




Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern


  Zum Rheinwerk-Shop
Neuauflage: IT-Handbuch für Fachinformatiker






Neuauflage: IT-Handbuch für Fachinformatiker
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


Zum Rheinwerk-Shop: Computer Netzwerke






 Computer Netzwerke


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


Zum Rheinwerk-Shop: Windows 8.1 Pro






 Windows 8.1 Pro


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo