CallHandlerWithParameters<CAL> 인터페이스

pureQuery가 com.ibm.pdq.runtime.handlers.CallHandlerWithParameters<CAL> 인터페이스의 구현을 사용하여 SQL 스토어드 프로시저 CALL의 결과를 처리하는 방법을 사용자 정의할 수 있습니다. pureQuery는 이 구현을 사용하여, CALL문을 실행한 인라인 메소드나 어노테이션이 있는 메소드에서 리턴될 오브젝트를 작성할 수 있습니다. 또한 필요할 수 있는 추가 처리(예: OUT 및 INOUT 매개변수 갱신)를 이 구현에서 수행할 수 있습니다.

SQL 스토어드 프로시저 호출에 대한 디폴트 pureQuery 동작은 StoredProcedureResult의 인스턴스로 결과를 리턴하는 것입니다. 또한 디폴트로 pureQuery는 OUT 및 INOUT 매개변수를 표시하기 위해 인라인 메소드나 어노테이션이 있는 메소드에 전달된 Bean 및 맵을 갱신합니다.

CallHandlerWithParameters<T> 인터페이스에는 한 가지 메소드만 있습니다.
T handleCall (CallableStatement cstmt, Object... parameters) throws SQLException

pureQuery는 handleCall() 메소드를 호출하여 인라인 메소드나 어노테이션이 있는 메소드에서 리턴되는 오브젝트를 작성합니다. pureQuery가 이 메소드를 호출할 때 pureQuery는 java.sql.CallableStatement 인터페이스를 구현하는 오브젝트를 전달합니다. 이 인터페이스는 SQL CALL문을 실행하는 데 사용됩니다. pureQuery는 또한 CALL문에서 매개변수의 값을 전달하는 데 사용한 매개변수도 전달합니다.

CallHandlerWithParameters<CAL>의 구현을 작성 중인 경우, 스토어드 프로시저 CALL의 결과를 표시하는 <CAL> 유형의 오브젝트를 작성하여 리턴하려면 이 메소드를 구현하십시오. handleCall() 메소드 내에서 수행할 수 있는 일부 활동은 다음과 같습니다.
  • cstmt를 사용하여 스토어드 프로시저에서 리턴되는 ResultSet 오브젝트에 액세스하고, 가능하면 메소드에서 리턴되는 <CAL> 유형 오브젝트에서 결과의 일부 또는 전체를 저장합니다. java.sql.CallableStatement 인터페이스에 대한 정보는 Java™ SDK의 Javadoc™를 참조하십시오.
  • cstmt를 사용하여 스토어드 프로시저의 OUTINOUT 매개변수가 리턴하는 값에 액세스하고 이를 결과 <CAL> 오브젝트에 병합합니다.
  • cstmt를 사용하여 스토어드 프로시저의 OUT 및 INOUT 매개변수가 리턴하는 값에 액세스하고, 인라인 메소드나 어노테이션이 있는 메소드로 전달된 매개변수를 새 값으로 갱신합니다.

어노테이션이 있는 메소드에 CallHandlerWithParameters<CAL> 오브젝트 사용

어노테이션이 있는 메소드에서 CallHandlerWithParameter 오브젝트를 호출하기 위해 사용할 수 있는 두 가지 방법이 있습니다.

인라인 메소드에 CallHandlerWithParameters<CAL> 오브젝트 사용

CallHandlerWithParameters<CAL> 오브젝트를 Data 인터페이스에 있는 이 버전의 오버로드된 call() 메소드에 전달합니다.

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

예제는 다음과 같습니다.

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)

피드백