2012-10-15 5 views
0

저는 IBM DB2에 익숙해졌으며 자바 웹 응용 프로그램의 사용자 입력을 기반으로 생성 할 상당히 복잡한 쿼리가 있습니다. 문제는 이러한 쿼리가 단순히 물음표를 사용하는 것이 문제가되지 않는 여러 가지 매개 변수와 함께 사용된다는 것입니다. 실제로 무엇이 어디로 가야 하는지를 알 수있는 방법이 없습니다. 고맙게도 DB2는 명명 된 매개 변수를 허용하여 훨씬 단순하게 만듭니다. 필자는 DB2 문서의 일부를 훑어 보았지만 모든 것이 매우 단순 해 보였습니다. 그러나 매개 변수 표식이 SQL 문자열에 존재하지 않는다는 예외가 계속 발생했습니다 (예 : parameter1이 SQL 문자열에 있음) setJccStringAtName 메소드에서 "parameter1"을 찾을 수 없습니다. 나는 "enabledNamedParameterMarkers"를 DB2BaseDataSource.YES에 getConnection 메소드로 전달되는 Properties 객체로 설정했지만, 확실히하지 않더라도 아무런 차이가없는 것처럼 보입니다. 확실히이 방법을 사용하는 것처럼 보일지라도 . 어쩌면 나는 명백한 것을 놓치고 있을지 모른다. 이것도 서버 측에서 활성화해야합니까?IBM DB2의 명명 된 매개 변수에 대한 속성 설정

+1

코드 샘플이 도움이 될 것입니다. – Brian

답변

0

당신의 문제는 당신이 순수한 자바 개발과 SLQJ의 몇 가지 개념을 혼합하고 있다고 생각합니다.

SQLJ 거기 된 .java 파일을 코드를 "준비"를 생성하는 이전 단계가, 그리고, 당신은 그러나 태그

#sql{ ... }; 

사이에, 자바 코드에서 기본적으로 SQL 쿼리를 작성할 수 있습니다. bnd.

SQLJ를 사용할 때 호스트 변수를 코드에서 직접 사용할 수 있으며 "Sets"메소드를 사용할 필요가 없습니다. http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.apdv.samptop.doc/doc/r0007622.html

이 기술에 초점을 맞춘 IBM 코스가있다 : 정보 센터에서 많은 예제가있다

String id = "A00"; 
#sql [ctx] iter = 
     {SELECT LASTNAME 
     FROM EMPLOYEE 
     WHERE EMPNO = :id}; 

CG113은 인터넷에서 찾아보십시오.

관련 문제