Advanced   Java   Services Der allgemeine execute() Aufruf Back Next Up Home


Der allgemeine execute() Aufruf

Erzeugt ein komplexes SQL-Kommando mehrere Ergebnisse oder ist unbekannt, von welcher Art das Ergebnis eines SQL-Kommandos ist, weil etwa ein Benutzer einer graphischen Oberfläche SQL-Statements eingibt, so sind executeUpdate() und executeQuery() nicht brauchbar. In dieser Situation kann man die Methode execute(String sql) verwenden. Sie verarbeitet jedes SQL-Kommando. Es ist allerdings ziemlich aufwendig festzustellen, welche Ergebnisse dann anliegen. Um zu untersuchen, welche Ergebnisse anliegen und wie man sie abholt benötigt man zusätzlich die folgenden drei Methoden (siehe auch die Kurzbeschreibung in der Tabelle der vorigen Seite).

  • int getUpdateCount()

  • ResultSet getResultSet()

  • boolean getMoreResults()

Das folgende Diagramm zeigt an, wie man diese Methoden verwendet und in welcher Reihenfolge man diese Methoden verwenden muß, um alle Ergebnisse zu bekommen. Dabei ist zu beachten, daß weder getUpdateCount() noch getResultSet() zweimal direkt hintereinander aufgerufen werden dürfen. Es muß immer ein Aufruf von getMoreResults() eingeschoben werden. Nach der Beschreibung in der API terminiert der Algorithmus, wenn gilt:

((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))


execute.jpg

Valid XHTML 1.0 Strict top Back Next Up Home