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.4Eine Beispielabfrage Zur vorigen ÜberschriftZur nächsten Überschrift

 
Zum Seitenanfang

21.4.1Schritte zur Datenbankabfrage Zur vorigen ÜberschriftZur nächsten Überschrift

Wir wollen kurz die Schritte skizzieren, die für einen Zugriff auf eine relationale Datenbank mit JDBC erforderlich sind:

  1. Einbinden der JDBC-Datenbanktreiber in den Klassenpfad

  2. unter Umständen Anmelden der Treiberklassen

  3. Verbindung zur Datenbank aufbauen

  4. eine SQL-Anweisung erzeugen

  5. SQL-Anweisung ausführen

  6. das Ergebnis der Anweisung holen, bei Ergebnismengen über diese iterieren

  7. die Datenbankverbindung schließen

Wir beschränken uns im Folgenden auf die Verbindung zum freien Datenbanksystem HSQLDB.

 
Zum Seitenanfang

21.4.2Ein Client für die HSQLDB-Datenbank Zur vorigen ÜberschriftZur nächsten Überschrift

Ein Beispiel soll zu Beginn die Programmkonzepte für JDBC veranschaulichen, bevor wir im Folgenden das Java-Programm weiter sezieren. Das Programm in der Klasse FirstSqlAccess nutzt die Datenbank TutegoDB, die sich im Suchpfad befinden muss; wir können ebenso absolute Pfade bei HSQLDB angeben, etwa C:/TutegoDB. Bei der Parametrisierung »jdbc:hsqldb:file:…« von HSQLDB liest die Datenbank beim ersten Start die Daten aus der Datei ein, verwaltet sie im Speicher und schreibt sie am Ende des Programms wieder in eine Datei zurück.

Da wir die Datenbank schon früher mit Demodaten gefüllt haben, lässt sich jetzt eine SQL-SELECT-Abfrage absetzen:

Listing 21.1com/tutego/insel/jdbc/FirstSqlAccess.java

package com.tutego.insel.jdbc;

import java.sql.*;

public class FirstSqlAccess {
public static void main( String[] args ) {
try {
Class.forName( "org.hsqldb.jdbcDriver" );
}
catch ( ClassNotFoundException e ) {
System.err.println( "Keine Treiber-Klasse!" );
return;
}

String url = "jdbc:hsqldb:file:TutegoDB;shutdown=true";
try ( Connection con = DriverManager.getConnection( url, "sa", "" );
Statement stmt = con.createStatement() ) {
// stmt.executeUpdate( "INSERT INTO CUSTOMER VALUES(" +
// "50,'Christian','Ullenboom','Immengarten 6','Hannover')" );

ResultSet rs = stmt.executeQuery( "SELECT * FROM Customer" );

while ( rs.next() )
System.out.printf( "%s, %s %s%n", rs.getString(1),
rs.getString(2), rs.getString(3) );

rs.close();
}
catch ( SQLException e ) {
e.printStackTrace();
}
}
}

Dem Beispiel ist in diesem Status schon die aufwändige Fehlerbehandlung anzusehen. Das Schließen vom ResultSet und Statement ist vereinfacht, aber okay, weil das try mit Ressourcen auf jeden Fall die Connection schließt, und darauf kommt es an.

[»]Hinweis

Es ist möglich, auch ohne ODBC-Eintrag Zugriff auf eine Access-Datenbank aufzubauen – nützlich ist das zum Beispiel dann, wenn der Name der Datenbank erst später bekannt wird.

con = DriverManager.getConnection( "jdbc:odbc:Driver="+
"{Microsoft Access Driver (*.mdb)};DBQ=c:/daten/test.mdb",
"name", "pass" );

Ein ähnlicher String kann auch für den Zugriff auf eine dBase-Datenbank genutzt werden, für die ein ODBC-Treiber angemeldet ist:

jdbc:odbc:Driver={Microsoft dBase Driver (*.dbf)};DBQ=c:\database.dbf

Das funktioniert jedoch nicht mehr unter Java 8, da der JDBC-ODBC-Treiber nicht mehr Teil der Standarddistribution 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