Java Reference
In-Depth Information
Statement stmt = conn.createStatement();
// Datenabfrage aufbereiten
String query = "select ID, Titel from Buecher";
// Schritt 3: Datenabfrage ausführen
ResultSet rs = stmt.executeQuery(query);
// Schritt 4: Ergebnismenge verarbeiten
System.out.println("ID\t\tTitel");
System.out.println("------------------------------------------");
while (rs.next()) {
System.out.println(rs.getString("ID") + "\t" + rs.getString("Titel"));
}
// Verbindung schließen
rs.close();
stmt.close();
Listing 15.15
Datenbankabfrage mit Ausgabe in der Konsole
Mit dem Statement
stmt=con.createStatement();
wird ein Statement-Objekt erzeugt,
das zur Übermittlung einer SQL-Anweisung benötigt wird.
Der String
query
nimmt die SQL-Abfrage auf, in unserem Beispiel also die
Select
-Anwei-
sung zur Abfrage aller Bücher mit Nummer.
Mit
ResultSet
rs=stmt.executeQuery(query);
wird der Query-String an das
stmt
-Objekt
zur Übermittlung und Ausführung übergeben. Die Abfrage liefert das Ergebnis in Form
eines
ResultSet
zurück. Das
ResultSet
rs
können Sie sich wie eine Tabelle vorstellen, die
die Datensätze zeilenweise enthält. Diese »Tabelle« wird nun mit Hilfe einer kopfge-
steuerten Schleife abgearbeitet. In unserem Fall geben wir vor Beginn der Schleife eine
Textzeile mit den Spaltenüberschriften und einer Trennlinie aus. Danach werden begin-
nend mit dem ersten Datensatz die Attribute mit
rs.getString(«Attribut«)
abgeholt
und ausgegeben. Mit
rs.next()
wird jeweils zum nächsten Datensatz gewechselt.
Sobald kein weiterer Datensatz mehr vorhanden ist, liefert der Aufruf
rs.next()
das
Ergebnis
false
zurück, womit die Schleife beendet wird.
Nach Beendigung der Schleife werden die Objekte
rs
,
stmt
und
conn
in umgekehrter Rei-
henfolge ihrer Erzeugung wieder geschlossen. Diese Aufräumarbeiten sind am Ende des
Programms nicht unbedingt erforderlich, da sie beim Programmende automatisch
erfolgen. Ist der Verbindungsaufbau mit der Abfrage in einem komplexen Programm
mehrfach notwendig, so können Sie durch das explizite Schließen der Objekte Ressour-
cen einsparen.
Abbildung 15.4
zeigt, wie das Abfrageergebnis in der Konsole dargestellt
wird. Sollen SQL-Anweisungen verwendet werden, die Veränderungen am Datenbe-
stand vornehmen, wie z. B. das Einfügen oder Löschen von Datensätzen, verwenden Sie