Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Mathematisches
6 Eigene Klassen schreiben
7 Angewandte Objektorientierung
8 Exceptions
9 Die Funktionsbibliothek
10 Threads und nebenläufige Programmierung
11 Raum und Zeit
12 Datenstrukturen und Algorithmen
13 Dateien und Datenströme
14 Die eXtensible Markup Language (XML)
15 Grafische Oberflächen mit Swing
16 Grafikprogrammierung
17 Netzwerkprogrammierung
18 Verteilte Programmierung mit RMI und Web-Services
19 JavaServer Pages und Servlets
20 Applets
21 Midlets und die Java ME
22 Datenbankmanagement mit JDBC
23 Reflection und Annotationen
24 Logging und Monitoring
25 Sicherheitskonzepte
26 Java Native Interface (JNI)
27 Dienstprogramme für die Java-Umgebung
A Die Begleit-DVD
Stichwort
Download: - ZIP, ca. 12,5 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> /Java-Insel | vor >>
Java ist auch eine Insel von Christian Ullenboom Programmieren mit der Java Standard Edition Version 6
Java ist auch eine Insel 7., aktualisierte Auflage geb., mit DVD (November 2007) 1.492 S., 49,90 Euro Galileo Computing ISBN 978-3-8362-1146-8 |
| 22 Datenbankmanagement mit JDBC
|  | 22.1 Das relationale Modell
|  | 22.2 Datenbanken und Tools
|  |  | 22.2.1 HSQLDB
|  |  | 22.2.2 Weitere Datenbanken
|  |  | 22.2.3 Eclipse-Plugins zum Durchschauen von Datenbanken
|  | 22.3 JDBC und Datenbanktreiber
|  |  | 22.3.1 Treibertypen
|  |  | 22.3.2 JDBC-Versionen
|  | 22.4 Eine Beispielabfrage
|  |  | 22.4.1 Schritte zur Datenbankabfrage
|  |  | 22.4.2 Client für HSQLDB-Datenbank
|  | 22.5 Mit Java an eine Datenbank andocken
|  |  | 22.5.1 Der Treiber-Manager
|  |  | 22.5.2 Den Treiber laden
|  |  | 22.5.3 Eine Aufzählung aller Treiber
|  |  | 22.5.4 Log-Informationen
|  |  | 22.5.5 Verbindung zur Datenbank auf- und abbauen
|  |  | 22.5.6 DataSource
|  |  | 22.5.7 Gepoolte Verbindungen
|  | 22.6 Datenbankabfragen
|  |  | 22.6.1 Abfragen über das Statement-Objekt
|  |  | 22.6.2 Ergebnisse einer Abfrage in ResultSet
|  |  | 22.6.3 Java und SQL-Datentypen
|  |  | 22.6.4 Unicode in der Spalte korrekt auslesen
|  |  | 22.6.5 Eine SQL-NULL und wasNull() bei ResultSet
|  |  | 22.6.6 Wie viele Zeilen hat ein ResultSet?
|  | 22.7 Die Ausnahmen bei JDBC
|  | 22.8 Elemente einer Datenbank hinzufügen und aktualisieren
|  |  | 22.8.1 Batch-Updates
|  | 22.9 ResultSets in Bohnen durch RowSet
|  |  | 22.9.1 Die Schnittstelle RowSet
|  |  | 22.9.2 Implementierungen von RowSet
|  |  | 22.9.3 Der Typ CachedRowSet
|  |  | 22.9.4 Der Typ WebRowSet
|  | 22.10 Vorbereitete Anweisungen (Prepared Statements)
|  |  | 22.10.1 PreparedStatement-Objekte vorbereiten
|  |  | 22.10.2 Werte für die Platzhalter eines PreparedStatement
|  | 22.11 Transaktionen
|  | 22.12 Metadaten
|  |  | 22.12.1 Metadaten über die Tabelle
|  |  | 22.12.2 Informationen über die Datenbank
|  | 22.13 Einführung in SQL
|  |  | 22.13.1 Ein Rundgang durch SQL-Anfragen
|  |  | 22.13.2 Datenabfrage mit der Data Query Language (DQL)
|  |  | 22.13.3 Tabellen mit der Data Definition Language (DDL) anlegen
|  | 22.14 Zum Weiterlesen
## 22.2 Datenbanken und Tools Vor dem Glück, eine Datenbank in Java ansprechen zu können, steht die Inbetriebnahme des Datenbanksystems. (Für dieses Kapitel ist das der schwierigste Teil.) Nun gibt es eine große Anzahl von Datenbanken – manche frei und Open Source, manche sehr teuer –, sodass sich dieses Tutorial nur auf eine Datenbank beschränkt. Das Rennen macht in dieser Auflage die pure Java-Datenbank HSQLDB, die sehr leicht ohne Administratorrechte läuft und genügend leistungsfähig ist. Da JDBC aber von Datenbanken abstrahiert, ist der Java-Programmcode natürlich auf jeder Datenbank lauffähig.
Hinweis Im SDK von Java 6 ist im Unterverzeichnis db, also etwa C:\Programme\ Java\ jdk1.6.0\db, die Datenbank Java DB (http://developers.sun.com/prodtech/javadb/) integriert. Sie basiert auf Apache Derby, dem früheren Cloudscape von IBM.
### 22.2.1 HSQLDB HSQLDB (http://hsqldb.org/) ist ein pures Java-RDBMS unter der freien BSD-Lizenz. Die Datenbank geht auf Hyersonic SQL zurück. HSQLDB lässt sich in zwei Modi fahren: als eingebettetes Datenbanksystem und als Netzwerkserver. Im Fall eines eingebauten Datenbanksystems ist lediglich die Treiber-Klasse zu laden und die Datenbank zu bestimmen, und schon geht’s los. Wir werden für die folgenden Beispiele diese Variante wählen. Auf der Download-Seite von SourceForge befindet sich ein Archiv wie hsqldb_1_8_0_8.zip, das wir auspacken, zum Beispiel nach C:\Programme\hsqldb. Unter C:\Programme\ hsqldb\ demo\ befindet sich ein Skript runManagerSwing.bat, das ein kleines Datenbank-Frontend öffnet. Im folgenden Connect-Dialog setzen wir den Typ auf HSQL Database Engine Standalone und die JDBC-URL auf jdbc:hsqldb:file:c:\TutegoDB – der Teil hinter file: gibt also den Pfad zu der Datenbank an. (Liegt die Datenbank im Eclipse Workspace, kann später die absolute Angabe entfallen.) Hier klicken, um das Bild zu vergrößern Nach dem Dialog-OK fügt im Menü Options die Operation Insert Test Data einige Tabellen mit Dummy-Daten ein und führt ein SQL-SELECT aus, das uns den Inhalt der Customer-Tabelle zeigt. Beenden wir anschließend das Swing-Programm mit File • Exit. Im Dateisystem hat der Manager jetzt eine .log-Datei angelegt – zu ihr gesellt sich später noch eine .script-Datei –, eine .properties-Datei und eine .lck-Datei. Hier klicken, um das Bild zu vergrößern Für den Datenbankzugriff aus Java ist nur das Archiv hsqldb.jar aus dem lib-Verzeichnis von HSQLDB in den Klassenpfad aufzunehmen. ### 22.2.2 Weitere Datenbanken Die Anzahl der Datenbanken ist zwar groß, aber es gibt immer wieder Standard-Datenbanken und freie Datenbank-Management-Systeme. #### MySQL MySQL (http://www.mysql.de/) ist ein häufig eingesetzter freier und schneller Open-Source-Datenbank-Server. Er wird oft im Internet in Zusammenhang mit dynamischen Webseiten eingesetzt; das Zusammenspiel Linux, Apache, MySQL, PHP (LAMP-System) ist hoch gelobt. Herausragende Eigenschaften sind die Geschwindigkeit und die Bedienbarkeit. Die MySQL-Datenbank spricht der unter der LGPL stehende JDBC-Treiber MySQL Connector/J (http://dev.mysql.com/downloads/connector/j/) an. Nach dem Entpacken muss das Jar-Archiv des Treibers in den Klassenpfad aufgenommen werden. Er unterstützt die JDBC-3.0 API. #### Oracle Um die Verbreitung weiter zu erhöhen, ist die Firma Oracle dazu übergegangen, eine vollwertige Version zum Download oder als CD freizugeben. Wer den Download nicht scheut, der kann unter http://www.oracle.com/technology/software/products/database/oracle10g/index.html die Version für Windows, Mac OS X, Linux und weitere Unix-Systeme herunterladen. #### DB2 Universal Database Express/DB2 Express-C Von IBM stammt die etwas eingeschränkte, aber freie Version von DB2 mit exzellenter Java-Unterstützung. Unter http://www-306.ibm.com/software/data/db2/express/index.html lässt sich die Datenbank für Windows und Linux herunterladen. #### Microsoft SQL Server Die Datenbank selbst ist zwar nicht frei – die SQL Server 2005 Express Edition einmal ausgenommen –, aber Microsoft bietet unter http://msdn.microsoft.com/data/ref/jdbc/ einen Typ 4 JDBC-Treiber für seinen SQL Server 2000 und SQL Server 2005 an. Der Treiber benötigt Java SE 1.4 und ist auf den Betriebssystemen Windows, Linux, Solaris AIX und HP-UX lauf-fähig. #### Microsoft Access Microsoft Access ist keine freie Software, aber auf vielen Windows-Systemen installiert. Mit Microsoft Access lässt sich mit wenigen Handgriffen eine Datenbank zusammenbauen, die dann anschließend über die JDBC-ODBC-Bridge aus Java zugänglich ist. Viele Anwender haben das Office-Paket von Microsoft zu Hause installiert und so schon eine Datenbank zur Verfügung. Eine einfache Datenbank ist schnell gebaut: Nach dem Start von Access erscheint automatisch ein Dialog mit dem Eintrag Leere Access-Datenbank. (Alternativ lässt sich eine neue Datenbank unter dem Menüpunkt Datei • Neu... einrichten.) Wir wählen den ersten Eintrag Datenbank und speichern die Datenbank unter einem aussagekräftigen Namen. Access benötigen wir nicht mehr direkt, weil die Kommunikation mit der Datenbank anschließend über den ODBC-Manager läuft. Dieser setzt dann auf dem SQL-Kern von Access auf. Im ODBC-Manager muss dafür die Datenquelle angemeldet werden. #### ODBC einrichten und Access damit verwenden Die meisten Datenbanken öffnen einen TCP/IP-Port und die Programme kommunizieren über ein definiertes Netzwerkprotokoll. Access ist dazu nicht in der Lage, und so muss eine Access-Datenbank als ODBC-Datenquelle bei einer Zentrale angemeldet werden; im nächsten Schritt kommuniziert ein spezieller Java-Datenbanktreiber mit dieser ODBC-Zentrale. Zum Einrichten gehen wir zunächst in die Systemeinstellungen (Start • Einstellungen • Systemsteuerung) und suchen ab Windows 2000 im Verzeichnis Verwaltung nach dem Symbol Datenquellen (ODBC). Nach dem Start öffnet sich ein Dialog mit dem Titel ODBC-Datenquellen-Administrator. Wir gehen auf Hinzufügen, um eine neue Benutzer-Datenquelle hinzuzufügen. Im Dialog mit dem Titel Neue Datenquelle erstellen wählen wir den Microsoft Access-Treiber aus und gehen auf Fertigstellen. Ein Dialog öffnet sich, und wir tragen unter Datenquellenname einen Namen für die Datenquelle ein. Darunter können wir in Java später die Datenbank ansprechen. Der Name der Datei hat nichts mit dem Namen der Datenquelle gemeinsam. Optional können wir noch eine Beschreibung hinzufügen. Wichtig ist nun die Verbindung zur physikalischen Datenbank. Im umrandeten Bereich Datenbank aktivieren wir über die Schaltfläche Auswählen einen Datei-Selektor. Hier hangeln wir uns bis zur in Access erstellten Datei durch und tragen sie ein. Nun müssen wir nur noch einige Male OK anklicken, und wir sind fertig. Wenn der Administrator nicht meckert, können wir nun ein JDBC-Programm starten. Hier klicken, um das Bild zu vergrößern Abbildung 22.1 Auswählen einer Datenbank ### 22.2.3 Eclipse-Plugins zum Durchschauen von Datenbanken Es gibt fast genauso viele Tools zum Administrieren von Datenbanken wie Datenbanken selbst. Da aber Eclipse WTP (http://www.eclipse.org/webtools/) ohnehin schon installiert sein sollte (siehe Ende Kapitel 1, »Eclipse Web Tools Platform (WTP)«), nutzen wir dieses als Datenbank-Tool. Andere Eclipse-Plugins sind QuantumDB (http://quantum.sourceforge.net/) oder auch die Standalone-Anwendung SQuirreL (http://squirrel-sql.sourceforge.net/). #### Eclipse WTP Nach der Installation des WTP öffnen wir den Dialog unter File • New • Other... • Data • SQL Scrapbook Page und geben einen Dateinamen (test) für eine Skriptdatei an. Finish schließt den Dialog, legt eine Datei test.sqlpage an und öffnet diese in einem neuen Editor für SQL-Anweisungen. Zusätzlich aktiviert Eclipse eine neue View Database Explorer. In der View ist unter Connections das Kontextmenü zu bemühen und New Connection... auszuwählen. Im folgenden Dialog ist links bei den Datenbank-Managern Generic JDBC • 1.0 auszuwählen. Dann geben wir an: Database: ein beliebiger Name, der nur zur Anzeige dient. JDBC driver class: die Treiberklasse org.hsqldb.jdbcDriver. Class location: Über Browse wählen wir die Datei hsqldb.jar aus. Connection URL: der JDBC-URL für die angelegte Datenbank jdbc:hsqldb:file:c:/TutegoDB. Unter User information geben wir unter User ID »sa« ein, und das Password bleibt leer. Mit einem Klick auf die Schaltfläche Test Connection bekommen wir die Information, ob alles gut geht oder ob es Probleme mit den Parametern gibt. Hier klicken, um das Bild zu vergrößern Abbildung 22.2 Verbindungsdaten eintragen Finish schließt den Dialog ab, und nach einer erfolgreichen Verbindung sind in der View die Datenbank sowie ihre Schemas zu sehen. #### Arbeiten mit der Scrapbook-Seite In der Scrapbook-Seite können wir unsere Datenbank mit Leben füllen oder Anfragen starten, etwa mit:
    SELECT * FORM Customer;
Die rechte Maustaste, im Scrapbook-Editor gedrückt, bietet im Kontextmenü ein das Skript anstoßendes Run SQL. (Im folgenden Dialog wählen wir Use existing connection.) Hier klicken, um das Bild zu vergrößern Abbildung 22.3 Die drei Views Database Explorer, Data Output und der Editor für das SQL Scrapbook Wenn wir unsere Beispiele beendet haben, sollten wir im Database Explorer die Verbindung wieder schließen; dazu ist auf unserer Datenbank in der View Database Explorer im Kontextmenü Disconnect zu wählen. ### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.
Name |
E-Mail |
Ihr Kommentar |
<< zurück | <top> | vor >>

Copyright © Galileo Press 2008
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.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de