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

Inhaltsverzeichnis
Vorwort
1 Neues in Java 7
2 Threads und nebenläufige Programmierung
3 Datenstrukturen und Algorithmen
4 Raum und Zeit
5 Dateien, Verzeichnisse und Dateizugriffe
6 Datenströme
7 Die eXtensible Markup Language (XML)
8 Dateiformate
9 Grafische Oberflächen mit Swing
10 Grafikprogrammierung
11 Netzwerkprogrammierung
12 Verteilte Programmierung mit RMI
13 RESTful und SOAP Web-Services
14 JavaServer Pages und Servlets
15 Applets
16 Datenbankmanagement mit JDBC
17 Technologien für die Infrastruktur
18 Reflection und Annotationen
19 Dynamische Übersetzung und Skriptsprachen
20 Logging und Monitoring
21 Java Native Interface (JNI)
22 Sicherheitskonzepte
23 Dienstprogramme für die Java-Umgebung
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
Java 7 - Mehr als eine Insel von Christian Ullenboom
Das Handbuch zu den Java SE-Bibliotheken
Buch: Java 7 - Mehr als eine Insel

Java 7 - Mehr als eine Insel
Rheinwerk Computing
1433 S., 2012, geb.
49,90 Euro, ISBN 978-3-8362-1507-7
Pfeil 16 Datenbankmanagement mit JDBC
Pfeil 16.1 Relationale Datenbanken
Pfeil 16.1.1 Das relationale Modell
Pfeil 16.2 Datenbanken und Tools
Pfeil 16.2.1 HSQLDB
Pfeil 16.2.2 Weitere Datenbanken *
Pfeil 16.2.3 Eclipse-Plugins zum Durchschauen von Datenbanken
Pfeil 16.3 JDBC und Datenbanktreiber
Pfeil 16.3.1 Treibertypen *
Pfeil 16.3.2 JDBC-Versionen *
Pfeil 16.4 Eine Beispielabfrage
Pfeil 16.4.1 Schritte zur Datenbankabfrage
Pfeil 16.4.2 Ein Client für die HSQLDB-Datenbank
Pfeil 16.4.3 Datenbankbrowser und eine Beispielabfrage unter NetBeans
Pfeil 16.5 Mit Java an eine Datenbank andocken
Pfeil 16.5.1 Der Treiber-Manager *
Pfeil 16.5.2 Den Treiber laden
Pfeil 16.5.3 Eine Aufzählung aller Treiber *
Pfeil 16.5.4 Log-Informationen *
Pfeil 16.5.5 Verbindung zur Datenbank auf- und abbauen
Pfeil 16.6 Datenbankabfragen
Pfeil 16.6.1 Abfragen über das Statement-Objekt
Pfeil 16.6.2 Ergebnisse einer Abfrage in ResultSet
Pfeil 16.6.3 Java und SQL-Datentypen
Pfeil 16.6.4 Date, Time und Timestamp
Pfeil 16.6.5 Unicode in der Spalte korrekt auslesen
Pfeil 16.6.6 Eine SQL-NULL und wasNull() bei ResultSet
Pfeil 16.6.7 Wie viele Zeilen hat ein ResultSet? *
Pfeil 16.7 Elemente einer Datenbank hinzufügen und aktualisieren
Pfeil 16.7.1 Batch-Updates
Pfeil 16.7.2 Die Ausnahmen bei JDBC, SQLException und Unterklassen
Pfeil 16.8 ResultSet und RowSet *
Pfeil 16.8.1 Die Schnittstelle RowSet
Pfeil 16.8.2 Implementierungen von RowSet
Pfeil 16.8.3 Der Typ CachedRowSet
Pfeil 16.8.4 Der Typ WebRowSet
Pfeil 16.9 Vorbereitete Anweisungen (Prepared Statements)
Pfeil 16.9.1 PreparedStatement-Objekte vorbereiten
Pfeil 16.9.2 Werte für die Platzhalter eines PreparedStatement
Pfeil 16.10 Transaktionen
Pfeil 16.11 Metadaten *
Pfeil 16.11.1 Metadaten über die Tabelle
Pfeil 16.11.2 Informationen über die Datenbank
Pfeil 16.12 Vorbereitete Datenbankverbindungen
Pfeil 16.12.1 DataSource
Pfeil 16.12.2 Gepoolte Verbindungen
Pfeil 16.13 JPA-Beispiel mit der NetBeans-IDE
Pfeil 16.13.1 Entity-Beans generieren
Pfeil 16.13.2 Die Quellen im Überblick
Pfeil 16.13.3 Persistence Unit
Pfeil 16.13.4 Ein JPA-Beispielprogramm
Pfeil 16.14 Zum Weiterlesen

Rheinwerk Computing - Zum Seitenanfang

16.2 Datenbanken und ToolsZur nächsten Überschrift

Vor dem Glück, eine Datenbank in Java ansprechen zu können, steht die Inbetriebnahme des Datenbanksystems (für dieses Kapitel ist das fast schon der schwierigste Teil). Nun gibt es eine große Anzahl von Datenbanken – manche sind 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 leistungsfähig genug ist. Da JDBC aber von Datenbanken abstrahiert, ist der Java-Programmcode natürlich auf jeder Datenbank lauffähig.

Hinweis

Ab dem JDK 6 ist im Unterverzeichnis db, also etwa C:\Program Files\Java\jdk1.6.0\db, die Datenbank Java DB (http://developers.sun.com/javadb/) integriert. Sie basiert auf Apache Derby, dem früheren Cloudscape von IBM.


Rheinwerk Computing - Zum Seitenanfang

16.2.1 HSQLDBZur nächsten ÜberschriftZur vorigen Überschrift

HSQLDB (http://hsqldb.org/) ist ein pures Java-RDBMS unter der freien BSD-Lizenz. Die Datenbank lässt sich in zwei Modi fahren: als eingebettetes Datenbanksystem und als Netzwerkserver. Im Fall eines eingebauten Datenbanksystems ist lediglich die Treiberklasse 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 http://sourceforge.net/projects/hsqldb/files/ von SourceForge befindet sich ein Archiv wie hsqldb-2.2.5.zip (8,2 MiB), das wir auspacken, zum Beispiel nach c:\Programme\hsqldb. Unter C:\Programme\hsqldb\bin\ befindet sich ein Skript runManagerSwing.bat, das ein kleines Datenbank-Frontend öffnet. Im folgenden Dialog Connect setzen wir

  1. den Typ auf HSQL Database Engine Standalone und
  2. die JDBC-URL auf jdbc:hsqldb:file:c:\TutegoDB (statt c:\TutegoDB einen anderen Pfad eintragen, wohin die Datenbank erzeugt werden soll). Der Teil hinter file: gibt also den Pfad zu der Datenbank an, wobei der Pfad relativ oder absolut sein kann. Liegt die Datenbank im Eclipse-Workspace, kann später die absolute Angabe entfallen. Existiert die Datenbank nicht, wird sie unter dem angegebenen Pfad angelegt – das machen wir im ersten Schritt –, existiert sie, wird sie zum Bearbeiten geöffnet.

Abbildung

Abbildung 16.1: Verbindung aufbauen zur Datenbank

Nach dem Beenden des Dialogs mit 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 FileExit. 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.

Für den Datenbankzugriff aus Java ist nur das Archiv hsqldb.jar aus dem lib-Verzeichnis von HSQLDB in den Klassenpfad aufzunehmen.

Abbildung

Abbildung 16.2: SQL-Kommandos absetzen und Resultate einsehen


Rheinwerk Computing - Zum Seitenanfang

16.2.2 Weitere Datenbanken *Zur nächsten ÜberschriftZur vorigen Überschrift

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 zwischen 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 4.0-API. Sun Microsystems hat im Februar 2008 MySQL übernommen, und heute gehört es zu Oracle.

PostgreSQL

Die PostgreSQL-Datenbank (http://www.postgresql.org/) ist ebenfalls quelloffen, läuft auf vielen Architekturen und unterstützt weitgehend den SQL-Standard 92. Gespeicherte Prozeduren, Schnittstellen zu vielen Programmiersprachen, Views und die Unterstützung für Geoinformationssysteme (GIS) haben das unter der BSD-Lizenz stehende PostgreSQL sehr beliebt gemacht. Es gibt JDBC 4-Treiber unter http://jdbc.postgresql.org/.

H2

Die Beispiele im Buch basieren auf der HSQLDB-Datenbank, da sie so schön einfach ist. Eine andere leistungsfähige und einfach einzusetzende pure Java-Datenbank ist H2 (http://www.h2database.com). Auch sie ist standalone oder eingebettet lauffähig und verfügt gegenüber HSQLDB noch über einige Extra-Features. H2 hat eine schöne Web-Oberfläche zur Konfiguration und für Abfragen und unterstützt alle wichtigen SQL-Eigenschaften wie Trigger, Joins, dazu abgesicherte Verbindungen und Volltextsuche. H2 hält außerdem den Speicherverbrauch klein. Weiterhin lässt sich ein ODBC-Treiber (von PostgreSQL) nutzen, um H2 auch unter Windows-Programmen (etwa Access) als Datenbank zu nutzen.

Oracle Database 10g Express Edition (Oracle Database XE)

Um die Verbreitung ihrer Produkte weiter zu erhöhen, ist die Firma Oracle dazu übergegangen, eine vollwertige freie Version zum Download oder als CD anzubieten. Wer den Download nicht scheut, der kann unter http://www.oracle.com/technology/software/products/database/index.html die Oracle Database XE für Windows, Mac OS X, Linux und weitere Unix-Systeme herunterladen. Die JDBC-Treiber sind auf dem neuen Stand.

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://tutego.de/go/db2express lässt sich die Datenbank für Windows und Linux herunterladen.

Microsoft SQL Server und JDBC-Treiber

Mit SQL Server 2008 Express (http://www.microsoft.com/express/Database/) bietet Microsoft eine freie Datenbank. Auch für die nicht-freie Version, den Microsoft SQL Server, bietet Microsoft unter http://msdn.microsoft.com/data/ref/jdbc/ einen aktuellen JDBC 3-Treiber. Er benötigt mindestens Java 5 und ist auf verschiedenen Betriebssystemen lauffähig.

Microsoft Access

Microsoft Access ist keine freie Software, aber auf vielen Windows-Systemen installiert. Damit 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 DateiNeu ... 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 (StartEinstellungenSystemsteuerung) 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. Unter diesem Namen 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.

Abbildung

Abbildung 16.3: Auswählen einer Datenbank


Rheinwerk Computing - Zum Seitenanfang

16.2.3 Eclipse-Plugins zum Durchschauen von DatenbankenZur nächsten ÜberschriftZur vorigen Überschrift

Es gibt fast genauso viele Tools zum Administrieren von Datenbanken wie Datenbanken selbst. Zwar bringt NetBeans direkt ein Plugin zum Durchstöbern von Datenbanken mit, doch leider nicht die Eclipse IDE – auch nicht in der Ausgabe Eclipse IDE for Java EE Developers. So muss ein extra Plugin installiert werden. Von der Eclipse-Foundation gibt es Eclipse Data Tools Platform (DTP) und eine Webseite http://www.eclipse.org/datatools/. Frei und in Java (aber kein Eclipse-Plugin) ist SQuirreL (http://squirrel-sql.sourceforge.net/).

Eclipse Data Tools Platform (DTP)

Die DTP wird über den Online-Update-Mechanismus installiert. Wir wählen HelpInstall New Software... und geben bei work with die URL http://download.eclipse.org/datatools/updates/ ein. Wir aktivieren Add... und bestätigen den nächsten Dialog mit OK. Es folgt ein Dialog mit Versionen, aus denen wir die letzte DTP-Version auswählen können, etwa Eclipse Data Tools Platform SDK 1.9.0.

Abbildung

Abbildung 16.4: Auswählen des DTP-Plugings

Nach ein paar Ja-Next-Dialogen wird Eclipse neu gestartet, und das Plugin ist installiert. Wir wechseln anschließend die Perspektive mit WindowOpen PerspectiveOther... und wählen dann Database Development.

Es gibt in der Perspektive einige neue Ansichten. Eine ist Data Source Explorer, die sich auch durch WindowShow ViewData Source Explorer für andere Perspektiven aktivieren lässt. In der Ansicht wählen wir im Zweig Database Connections über das Kontextmenü den Eintrag New... So lässt sich eine neue Datenbankverbindung einrichten. Im folgenden Dialog wählen wir HSQLDB aus der Liste. Next bringt uns zu einem neuen Dialog. Rechts neben dem Auswahlfeld bei Drivers ist eine unscheinbare Schaltfläche mit einem Kreis und +-Symbol.

Abbildung

Abbildung 16.5: Treiberdetails bestimmen

Nach dem Aktivieren öffnet sich ein weiterer Dialog mit dem Titel New Driver Definition. Aus der Liste wählen wir unter Database den HSQLB JDBC Driver aus und gehen auf den zweiten Reiter, auf Jar List. Mit Add JAR/Zip... kommt ein Auswahldialog, und wir navigieren zu hsqldb.jar.

Abbildung

Abbildung 16.6: Jar-Datei auswählen

Nach diesem Eintrag aktivieren wir den dritten Reiter, Properties. Wir tragen Folgendes ein:

  • Connection URL: die JDBC-URL für die angelegte Datenbank, etwa jdbc:hsqldb:file:c:/TutegoDB
  • Database Name: ein beliebiger Name, der nur zur Anzeige dient, etwa tutegoDB
  • Driver Class: die Treiberklasse org.hsqldb.jdbcDriver
  • Unter User ID tragen wir »sa« ein.

Abbildung

Abbildung 16.7: Verbindungsdaten eintragen

Mit Ok bestätigen wir den Dialog, und anschließend sollte der Klick auf die Schaltfläche Test Connection bezeugen, dass alles gut geht und es keine Probleme mit den Parametern gab. Finish schließt den Dialog, und nach einer erfolgreichen Verbindung sind in der Ansicht die Datenbank sowie ihre Schemas zu sehen.

Um eine SQL-Abfrage auszuführen, öffnen wir den Dialog unter FileNewOther...SQL DevelopmentSQL File, klicken auf Next und geben einen Dateinamen wie test für eine Skriptdatei an. Im unteren Bereich des Dialogs lässt sich direkt die Datenbank auswählen. Wählen wir für Database server type den Eintrag HSQLDB_1.8, für Connection profile name anschließend New HSQLDB und abschließend als Database name aus dem Auswahlmenü PUBLIC. Finish schließt den Dialog, legt eine Datei test.sqlpage an und öffnet diese in einem neuen Editor für SQL-Anweisungen. Tragen wir dort Folgendes ein:

SELECT * FROM Customer

Das Kontextmenü im SQL-Editor bietet Execute All. In der Ansicht SQL Results sind die Ergebnisse dann abzulesen.

Abbildung

Abbildung 16.8: Die drei Ansichten »Database Explorer«, »Data Output« und der Editor für das SQL Scrapbook

Tipp

Mit der rechten Maustaste lassen sich im Kontextmenü Edit in SQL Query Builder... die Abfragen auch etwas mehr grafisch visualisieren.

Wenn wir unsere Beispiele beendet haben, sollten wir im Data Source Explorer die Verbindung wieder schließen; dazu ist auf unserer Datenbank in der Ansicht 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.

>> Zum Feedback-Formular
<< zurück
  Zum Katalog
Neuauflage: Java SE 8 Standard-Bibliothek
Neuauflage: Java SE 8 Standard-Bibliothek
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Java EE 7






 Professionell
 entwickeln mit
 Java EE 7


Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Einstieg in Eclipse






 Einstieg in Eclipse


Zum Katalog: Einstieg in Java






 Einstieg in Java


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2012
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das 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