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 8 und Java 7
2 Fortgeschrittene String-Verarbeitung
3 Threads und nebenläufige Programmierung
4 Datenstrukturen und Algorithmen
5 Raum und Zeit
6 Dateien, Verzeichnisse und Dateizugriffe
7 Datenströme
8 Die eXtensible Markup Language (XML)
9 Dateiformate
10 Grafische Oberflächen mit Swing
11 Grafikprogrammierung
12 JavaFX
13 Netzwerkprogrammierung
14 Verteilte Programmierung mit RMI
15 RESTful und SOAP-Web-Services
16 Technologien für die Infrastruktur
17 Typen, Reflection und Annotationen
18 Dynamische Übersetzung und Skriptsprachen
19 Logging und Monitoring
20 Sicherheitskonzepte
21 Datenbankmanagement mit JDBC
22 Java Native Interface (JNI)
23 Dienstprogramme für die Java-Umgebung
Stichwortverzeichnis

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java SE 8 Standard-Bibliothek von Christian Ullenboom
Das Handbuch für Java-Entwickler
Buch: Java SE 8 Standard-Bibliothek

Java SE 8 Standard-Bibliothek
Pfeil 21 Datenbankmanagement mit JDBC
Pfeil 21.1 Relationale Datenbanken
Pfeil 21.1.1 Das relationale Modell
Pfeil 21.2 Datenbanken und Tools
Pfeil 21.2.1 HSQLDB
Pfeil 21.2.2 Weitere Datenbanken *
Pfeil 21.2.3 Eclipse Data Tools Platform (DTP) zum Durchschauen von Datenbanken
Pfeil 21.3 JDBC und Datenbanktreiber
Pfeil 21.3.1 Treibertypen *
Pfeil 21.3.2 JDBC-Versionen *
Pfeil 21.4 Eine Beispielabfrage
Pfeil 21.4.1 Schritte zur Datenbankabfrage
Pfeil 21.4.2 Ein Client für die HSQLDB-Datenbank
Pfeil 21.5 Mit Java an eine Datenbank andocken
Pfeil 21.5.1 Der Treiber-Manager *
Pfeil 21.5.2 Den Treiber laden
Pfeil 21.5.3 Eine Aufzählung aller Treiber *
Pfeil 21.5.4 Log-Informationen *
Pfeil 21.5.5 Verbindung zur Datenbank auf- und abbauen
Pfeil 21.6 Datenbankabfragen
Pfeil 21.6.1 Abfragen über das Statement-Objekt
Pfeil 21.6.2 Ergebnisse einer Abfrage in ResultSet
Pfeil 21.6.3 Java und SQL-Datentypen
Pfeil 21.6.4 Date, Time und Timestamp
Pfeil 21.6.5 Unicode in der Spalte korrekt auslesen
Pfeil 21.6.6 Eine SQL-NULL und wasNull() bei ResultSet
Pfeil 21.6.7 Wie viele Zeilen hat ein ResultSet? *
Pfeil 21.7 Elemente einer Datenbank ändern
Pfeil 21.7.1 Einzelne INSERT-, UPDATE- oder DELETE-Anweisungen senden
Pfeil 21.7.2 Aktualisierbares ResultSet
Pfeil 21.7.3 Batch-Updates
Pfeil 21.8 Die Ausnahmen bei JDBC, SQLException und Unterklassen
Pfeil 21.8.1 JDBC-Fehlerbasisklasse SQLException
Pfeil 21.8.2 SQLWarning
Pfeil 21.9 ResultSet und RowSet *
Pfeil 21.9.1 Die Schnittstelle RowSet
Pfeil 21.9.2 Implementierungen von RowSet
Pfeil 21.9.3 Der Typ CachedRowSet
Pfeil 21.9.4 Der Typ WebRowSet
Pfeil 21.10 Vorbereitete Anweisungen (Prepared Statements)
Pfeil 21.10.1 PreparedStatement-Objekte vorbereiten
Pfeil 21.10.2 Werte für die Platzhalter eines PreparedStatement
Pfeil 21.11 Transaktionen
Pfeil 21.13 Vorbereitete Datenbankverbindungen
Pfeil 21.13.1 DataSource
Pfeil 21.13.2 Gepoolte Datenbankverbindungen
Pfeil 21.14 Zum Weiterlesen
 
Zum Seitenanfang

21.2Datenbanken und Tools Zur vorigen ÜberschriftZur 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

Das JDK-Unterverzeichnis db, also etwa C:\Program Files\Java\jdk1.8.0\db, liefert die Datenbank Java DB (http://www.oracle.com/technetwork/java/javadb/overview/) mit aus. Sie basiert auf Apache Derby, dem früheren Cloudscape von IBM. Im bin-Verzeichnis von db befinden sich mehrere Tools. Ein Aufruf von startNetworkServer -p 60000 startet den Datenbankserver und lässt ihn auf Port 60000 hören. Mit dem interaktiven SQL-Kommandozeilentool ij lässt sich dann zur Datenbank verbinden oder wieder mit den Datenbanktools von NetBeans und Eclipse.

 
Zum Seitenanfang

21.2.1HSQLDB Zur vorigen ÜberschriftZur nächsten Ü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.3.1.zip (ca. 7 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 geschrieben werden soll; das Wurzelverzeichnis C:\ unter Windows kann in der Regel nicht beschrieben werden). 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.

Verbindung aufbauen zur Datenbank

Abbildung 21.1Verbindung 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 gesellen 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.

SQL-Kommandos absetzen und Resultate einsehen

Abbildung 21.2SQL-Kommandos absetzen und Resultate einsehen

 
Zum Seitenanfang

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

Die Anzahl der Datenbanken ist zwar groß, aber es gibt immer wieder Standarddatenbanken und freie Datenbank-Management-Systeme.

MySQL

MySQL (http://www.mysql.de/) ist ein häufig eingesetzter freier und schneller Open-Source-Datenbankserver. 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 moderne JDBC 4.1-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 als Stand-alone oder eingebettet lauffähig und verfügt gegenüber HSQLDB noch über einige Extra-Features. H2 hat eine schöne Weboberflä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 11g 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/technetwork/database/database-technologies/express-edition/ die Oracle Database XE für Windows, Mac OS X, Linux und weitere Unix-Systeme herunterladen. Die JDBC-Treiber sind auf dem neuesten 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 Express 2012 (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://www.microsoft.com/de-de/download/details.aspx?id=11774 einen aktuellen JDBC 4.0-Treiber. Er benötigt mindestens Java 5 und ist plattformunabhängig.

 
Zum Seitenanfang

21.2.3Eclipse Data Tools Platform (DTP) zum Durchschauen von Datenbanken Zur vorigen ÜberschriftZur nächsten Überschrift

Es gibt fast genauso viele Tools zum Administrieren von Datenbanken wie Datenbanken selbst. NetBeans bringt ein Werkzeug zum Durchstöbern von Datenbanken mit, und für Eclipse gibt es die Data Tools Platform (DTP)[ 149 ](http://www.eclipse.org/datatools/), die das Paket Eclipse IDE for Java EE Developers integriert – eine herkömmliche Eclipse-Installation kann dieses Plugin einfach nachinstallieren.

Es gibt für die Eclipse-Perspektive Database Developement einige neue Ansichten. Eine ist Data Source Explorer, die sich auch durch WindowShow ViewOther…Data ManagementData Source Explorer für andere Perspektiven aktivieren lässt.

Beim Data Source Explorer 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.

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.

Zurück im Dialog ist dann der HSQLDB JDBC Driver voreingestellt und mit der Treiberklasse org.hsqldb.jdbcDriver verbunden. Im ersten Reiter, General, tragen wir Folgendes ein:

  • Database: einen beliebigen Namen, der nur der Anzeige dient, etwa tutegoDB

  • Database Location: den Ablageort für die angelegte Datenbank, etwa file:c:/TutegoDB

  • Unter User Name tragen wir »sa« ein, Password kann leer bleiben.

Die JDBC-URL mit dem Präfix jdbc:hsqldb: wird automatisch zusammengesetzt.

Dialog mit Verbindungsdaten

Abbildung 21.3Dialog mit Verbindungsdaten

Mit Finish 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.

[+]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.

[»]Hinweis

Wenn HSQLDB im Embedded-Modus arbeitet, sollte Eclipse neu gestartet werden, weil das Datenbanktool nicht zwingend die Verbindung korrekt schließt und sonst die folgenden Beispiele nicht funktionieren, da noch ein Datei-Lock vorhanden ist.

 


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
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Java SE 8 Standard-Bibliothek Java SE 8 Standard-Bibliothek
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: Java ist auch eine Insel
Java ist auch eine Insel


Zum Rheinwerk-Shop: Professionell entwickeln mit Java EE 8
Professionell entwickeln mit Java EE 8


Zum Rheinwerk-Shop: Besser coden
Besser coden


Zum Rheinwerk-Shop: Entwurfsmuster
Entwurfsmuster


Zum Rheinwerk-Shop: IT-Projektmanagement
IT-Projektmanagement


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

 
 


Copyright © Rheinwerk Verlag GmbH 2018
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