CallHandlerWithParameters<CAL> (Schnittstelle)

Mit einer Implementierung der Schnittstelle com.ibm.pdq.runtime.handlers.CallHandlerWithParameters<CAL> können Sie anpassen, wie pureQuery die Ergebnisse einer gespeicherten SQL-Prozedur CALL verarbeitet. pureQuery kann mit dieser Implementierung das Objekt erstellen, das von der mit Annotationen versehenen oder integrierten Methode zurückgegeben wird, die die Anweisung CALL ausgeführt hat. Darüber hinaus kann die Implementierung die gesamte zusätzliche Verarbeitung ausführen, die ggf. erforderlich ist, wie die Aktualisierung der Parameter OUT und INOUT.

Das Standardverhalten von pureQuery bei Aufrufen gespeicherter SQL-Prozeduren ist es, die Ergebnisse in einer Instanz von StoredProcedureResult zurückzugeben. Darüber hinaus aktualisiert pureQuery standardmäßig Zuordnungen und Beans, die an eine mit Annotationen versehene oder integrierte Methode übergeben wurden, um die Parameter OUT und INOUT darzustellen.

Die Schnittstelle CallHandlerWithParameters<T> hat nur eine Methode:
T handleCall (CallableStatement cstmt, Object... parameters) throws SQLException

pureQuery ruft die Methode handleCall() auf, um das Objekt zu erstellen, das von der mit Annotationen versehenen oder integrierten Methode zurückgegeben wird. Wenn pureQuery diese Methode aufruft, wird ein Objekt übergeben, das die Schnittstelle java.sql.CallableStatement implementiert, die zur Ausführung der SQL-Anweisung CALL verwendet wird. pureQuery übergibt zudem Parameter, die Sie zum Übergeben der Werte der Parameter in der Anweisung CALL verwendet haben.

Wenn Sie eine Implementierung von CallHandlerWithParameters<CAL> erstellen, implementieren Sie diese Methode, um ein Objekt des Typs <CAL> zu erstellen und zurückzugeben, das die Ergebnisse der gespeicherten Prozedur CALL darstellt. Innerhalb der Methode handleCall() können Sie beispielsweise folgende Aktivitäten ausführen:
  • Mit cstmt auf alle ResultSet-Objekte zugreifen, die von der gespeicherten Prozedur zurückgegeben werden, und möglicherweise einen Teil oder alle Ergebnisse im Objekt des Typs <CAL> speichern, das von der Methode zurückgegeben wird. Informationen zur Schnittstelle java.sql.CallableStatement finden Sie im Javadoc für Ihr Java™ SDK.
  • Mit cstmt auf Werte zugreifen, die von den Parametern OUT und INOUT einer gespeicherten Prozedur zurückgegeben wurden und diese in das resultierende <CAL>-Objekt aufnehmen.
  • Mit cstmt auf Werte zugreifen, die von den Parametern OUT und INOUT der gespeicherten Prozedur zurückgegeben wurden und die Parameter, die an die mit Annotationen versehene oder integrierte Methode übergeben werden, mit den neuen Werten aktualisieren.

Ein Objekt CallHandlerWithParameters<CAL> mit mit Annotationen versehenen Methoden verwenden

Es gibt zwei Methoden, um die CallHandlerWithParameter-Objekte von mit Annotationen versehenen Methoden zu verwenden.

Ein Objekt CallHandlerWithParameters<CAL> mit integrierten Methoden verwenden

Sie übergeben CallHandlerWithParameters<CAL>-Objekte an diese Version der überladenen Methode call() in der Schnittstelle Data:

<CAL> T call(String sql, CallHandlerWithParameters<CAL> callHandlerWithParameters, Object... parameters)

Beispiel:

MyResultsBean spResults = db.call("{?1 = Call ADDEM (?1.added1, ?1.addend2, ?1.sum)}",
		new custom.GetAddEmResult_CallHandlerWithParameters(), int outVal, int inVal1, int inVal2, int inVal3)

Feedback