Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


18.8.1

Grundlagen


CallableStatement ist von der Klasse PreparedStatement abgeleitet und ermöglicht deshalb das Setzen von Parametern, wie es auch bei vorbereitetem SQL möglich ist. Abbildung 18.19 zeigt den Ablauf bei der Ausführung einer Stored Procedure/Function mit JDBC.

Abbildung 18.19: Die Ausführung von Stored Procedures/Functions in JDBC
Abbildung 18.19

Wenn man diesen Ablauf genauer betrachtet, stellt man fest, dass PreparedStatement im Wesentlichen um das Konzept der Ausgabe-Parameter erweitert wird.

Die Durchführung des Aufrufs einer Stored Procedure wird an einem kleinen Beispiel vorgestellt: Angenommen, in der Datenbank existiert eine Stored Procedure liefere_titel_an(), die ISBN und Anzahl der gelieferten Titel als Parameter definiert. Die Java-Methode liefereTitelAn() führt den JDBC-Aufruf der Prozedur im folgenden Beispiel durch:
  public void liefereTitelAn(String isbn, int anzahl)
                                   throws SQLException {
    // Setzen des SQL-Strings
    String sql = "{ call liefere_titel_an(?,?) }";
    CallableStatement call = con.prepareCall(sql);
    // Setzen der Parameter
    call.setString(1, isbn);
    call.setInt(2, anzahl);
    // Ausführen der Stored Procedure
    call.executeUpdate();
    // Freigabe der Ressourcen
    call.close();
  }
In main() wird die Datenbankverbindung initialisiert und anschließend liefereTitelAn() mit Test-Parametern aufgerufen. Für den eigentlichen Prozeduraufruf werden dann folgende Schritte durchgeführt: Genau wie bei vorbereiteten SQL-Anweisungen kann man auch hier Platzhalter für Parameter durch Verwendung des Fragezeichens (»?«) einsetzen.

Über setXXX()-Methoden können die Parameter genau wie bei PreparedStatement gesetzt werden.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.