응용프로그램이 어노테이션이 있는 메소드를 사용하고
DB2® 데이터베이스에 대해 실행할 때 위치 지정된
갱신 및 삭제 사항을 수행할 수 있습니다.
시작하기 전에
응용프로그램이 다음 요구사항을 충족하는지 확인하십시오.
- DB2 데이터 소스에 대해서만 위치 지정된
갱신 및 삭제 사항을 수행할 수 있습니다.
- 커서를 선언하는 SELECT문을 실행하는 어노테이션이 있는 메소드는
ResultSet 또는 Iterator를 리턴해야 합니다.
- SELECT문을 실행하는 메소드의 선언과 UPDATE 또는 DELETE문을 실행하는
메소드의 선언은 단일 인터페이스에 있어야 합니다.
- 커서에 사용하는 이름은 DB2JCCCURSOR 또는
DB_PDQ로 시작할 수 없습니다.
- 커서의 이름이 같은 경우 단일 연결에서 동시에 두 커서를 열면 안됩니다.
- pureQuery에서 예외를 발생시키는 응용프로그램은
다음과 같습니다.
- 위치 지정된 갱신 및 삭제에 대한 커서를 선언하는 SELECT문을
실행합니다.
- 이전에 마지막 명령문이 실행된 동일 연결에 대해 다시 동일한
SELECT문을 실행합니다.
- SELECT문 중 하나가 선언된 커서를 사용하는 UPDATE 또는 DELETE문을
실행합니다.
pureQuery는 두 커서 중에서 UPDATE 또는 DELETE문이 참조하는
커서를 판별할 수 없습니다.
이 태스크 정보
어노테이션이 있는 메소드의 구문 다이어그램은
데이터베이스에 대해 SQL을 실행하는 어노테이션이 있는 메소드의 구문에서 "위치 지정된 갱신 및 삭제 사항 구문" 섹션을 참조하십시오.
프로시저
위치 지정된 갱신 및 삭제를 수행하기 위한 코드를
작성하려면 다음을 수행하십시오.
- 커서 위치를 지정하는 SELECT문을 실행하기 위한 어노테이션이 있는
메소드를 선언할 때, @Cursor 어노테이션의 cursorName 속성을 사용하여
커서의 이름을 지정하십시오. 이 메소드는 java.sql.ResultSet 오브젝트나
Iterator 오브젝트를 리턴해야 합니다.
주의: SELECT문에
FOR UPDATE절이 포함되어 있지만 @Cursor 어노테이션의
concurrency 속성을 java.sql.ResultSet.CONCUR_READ_ONLY(디폴트값)로
설정하는 경우, FOR UPDATE절이 속성보다 우선합니다.
pureQuery는 커서를 갱신 가능한 커서로 엽니다.
- 커서를 사용하는 UPDATE 또는 DELETE문을 실행하기 위한 어노테이션이 있는
메소드를 선언할 때, @Update 어노테이션에서 positionedCursorName 속성을 사용하여
커서의 이름을 지정하십시오.