Interface CallHandler<T>

IBM® vous recommande d'utiliser l'interface CallHandlerWithParameters<T> à la place de l'interface CallHandler<T>.

Transmettez les objets CallHandler<T> à cette version de la méthode call() surchargée dans l'interface Data :

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

Les objets CallHandler<T> contiennent une seule méthode : handleCall(CallableStatement cstmt). Lorsque pureQuery appelle cette méthode, il transmet un objet implémentant l'interface java.sql.CallableStatement utilisée pour exécuter l'instruction SQL CALL.

Utilisez la méthode handleCall(CallableStatement cstmt) pour exécuter les tâches suivantes :
  • Utilisez cstmt que pureQuery transmet pour accéder à tous les résultats de la requête renvoyés par la procédure mémorisée (en utilisant les méthodes getMoreResults() et getResultSet() de cstmt). Pour plus d'informations sur l'interface java.sql.CallableStatement, voir Javadoc pour votre SDK Java.
  • Utilisez cstmt pour accéder aux valeurs renvoyées par les paramètres OUT et INOUT d'une procédure mémorisée et les intégrer à l'objet <T> obtenu.
  • Créez et renvoyez l'objet de type <T> que la méthode intégrée renvoie. L'objet peut contenir, par exemple, le contenu de tous les résultats de la requête qui ont été renvoyés. Cependant, il n'y a aucune restriction concernant les informations pouvant être contenues dans l'objet.

Vous pouvez utiliser cette interface uniquement avec des méthodes intégrées.

Exemple

Dans cet exemple, le code crée un nouvel objet CallHandler<T> appelé GetAddEmResult_CallHandler.

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

Commentaires