CallHandler<T> インターフェース

IBM® では、CallHandlerWithParameters<T> インターフェースを CallHandler<T> インターフェースに代わって使用することを推奨しています。

Data インターフェースの以下のバージョンの多重定義された call() メソッドに対して、CallHandler<T> オブジェクトを渡します。

<T> T call(java.lang.String sql,
           CallHandler<T> callHandler,
           java.lang.Object... parameters)

CallHandler<T> オブジェクトには、handleCall(CallableStatement cstmt) という 1 つのメソッドが含まれます。 pureQuery がこのメソッドを呼び出すと、pureQuery は java.sql.CallableStatement インターフェースを実装するオブジェクトを渡します。 このインターフェースは、SQL CALL ステートメントを実行するのに使用されたものです。

handleCall(CallableStatement cstmt) メソッドを使用して、以下のタスクを実行します。
  • pureQuery が渡す cstmt を使用して、ストアード・プロシージャーが戻す任意の照会結果にアクセスします (cstmtgetMoreResults() メソッドおよび getResultSet() メソッドを使用)。java.sql.CallableStatement インターフェースについては、ご使用の Java SDK の Javadoc を参照してください。
  • cstmt を使用して、ストアード・プロシージャーの OUT パラメーターと INOUT パラメーターが戻す値にアクセスし、結果として生成される <T> オブジェクトにそれらの値をキャプチャーします。
  • インライン・メソッドが戻す <T> 型のオブジェクトを作成および戻します。例えば、このオブジェクトには戻された照会結果の内容を含めることができます。ただし、このオブジェクトに含めることのできる情報には制限はありません。

このインターフェースを使用できるのは、インライン・メソッドのみです。

以下の例のコードでは、GetAddEmResult_CallHandler という新しい CallHandler<T> オブジェクトを作成します。

MyBean spResults = db.call("{?1 = Call ADDEM (?2, ?3, ?4)}",
		new custom.GetAddEmResult_CallHandler(), int outVal, int inVal1, int inVal2, int inVal3)

フィードバック