18.2.1 | Klassen-Übersicht |
In folgender Abbildung sind die wichtigsten Klassen dargestellt, die bei der Programmierung mit JDBC benötigt werden.An den Pfeilen sind die Methoden angegeben, die aufgerufen werden müssen, um ein Exemplar der Klasse am Ende des Pfeils als Ergebnis zu erhalten. Hierzu gehören im Einzelnen:
Für die Ausführung von Abfragen wird immer die Methode executeQuery() benutzt. Zur Ausführung von INSERT-, UPDATE- oder DELETE-Operationen gibt es ab JDBC 2.0 zwei Möglichkeiten:
- DriverManager
Diese Klasse ist für die Verwaltung der JDBC-Treiber zuständig. Sie wird benutzt, um Verbindungen zur Datenbank aufzubauen.- DataSource
Alternativ zur Klasse DriverManager kann man ein Exemplar einer DataSource verwenden, um eine Verbindung zur Datenbank zu erzeugen. Diese Möglichkeit steht nur mit dem JDBC 2.0 Optional Package bzw. mit JDBC 3.0 zur Verfügung.- Connection
Eine Verbindung zur Datenbank wird von einer Connection repräsentiert. Sie wird für die Ausführung von SQL-Anweisungen und den Zugriff auf Metadaten in der Datenbank benötigt.- DatabaseMetaData
Der Zugriff auf das Data Dictionary erfolgt in JDBC über die Klasse DatabaseMetaData.- Statement
Statement stellt die Basis-Klasse für die Ausführung von SQL-Anweisungen dar. Mit ihr können beliebige, als String vorliegende SQL-Anweisungen an das Datenbanksystem geschickt werden.- PreparedStatement
PreparedStatement stellt eine vorbereitete SQL-Anweisung dar.- CallableStatement
Die Klasse CallableStatement wird für die Ausführung von Stored Procedures/Functions benötigt.- ResultSet
ResultSet stellt ein Ergebnis einer SQL-Abfrage dar und repräsentiert somit einen Datenbank-Cursor in Java.
- Bereits seit JDBC 1.0 kann man DML-Anweisungen über die Methode executeUpdate() starten. Da executeUpdate() kein Ergebnis zurückliefert, ist diese Methode in obiger Abbildung nicht aufgeführt. Sie wird prinzipiell genauso wie executeQuery() benutzt, mit dem Unterschied, dass kein ResultSet als Ergebnis zurückgeliefert wird. Für die Durchführung der Änderung wird deshalb ein gültiger SQL-String benötigt.
- Mit einem JDBC-2.0-kompatiblen Treiber ist es möglich, in einem ResultSet direkt Änderungen vorzunehmen und diese in die Datenbank zurückzuschreiben. Für diese Art der Änderung wird deshalb kein SQL benötigt, sondern sie wird durch Aufruf von Methoden des ResultSet durchgeführt. Nicht jeder ResultSet ermöglicht jedoch die Änderung der zurückgelieferten Daten. Das ist abhängig vom Typ des ResultSet und dem SQL-String, der dem ResultSet zugrunde liegt. Aktualisierbare Ergebnismengen sind in Abschnitt 18.6.2 beschrieben.