위치 지정된 갱신 및 삭제 사항 수행

애플리케이션이 어노테이션이 있는 메소드를 사용하고 DB2® 데이터베이스에 대해 실행할 때 위치 지정된 갱신 및 삭제 사항을 수행할 수 있습니다.

시작하기 전에

애플리케이션이 다음 요구사항을 충족하는지 확인하십시오.
  • DB2 데이터 소스에 대해서만 위치 지정된 갱신 및 삭제 사항을 수행할 수 있습니다.
  • 커서를 선언하는 SELECT문을 실행하는 어노테이션이 있는 메소드는 ResultSet 또는 Iterator를 리턴해야 합니다.
  • SELECT문을 실행하는 메소드의 선언과 UPDATE 또는 DELETE문을 실행하는 메소드의 선언은 단일 인터페이스에 있어야 합니다.
  • 커서에 사용하는 이름은 DB2JCCCURSOR 또는 DB_PDQ로 시작할 수 없습니다.
  • 커서의 이름이 같은 경우 단일 연결에서 동시에 두 커서를 열면 안됩니다.
  • pureQuery에서 예외를 발생시키는 애플리케이션은 다음과 같습니다.
    1. 위치 지정된 갱신 및 삭제에 대한 커서를 선언하는 SELECT문을 실행합니다.
    2. 이전에 마지막 명령문이 실행된 동일 연결에 대해 다시 동일한 SELECT문을 실행합니다.
    3. SELECT문 중 하나가 선언된 커서를 사용하는 UPDATE 또는 DELETE문을 실행합니다.
    pureQuery는 두 커서 중에서 UPDATE 또는 DELETE문이 참조하는 커서를 판별할 수 없습니다.

이 태스크 정보

어노테이션이 있는 메소드의 구문 다이어그램은 데이터베이스에 대해 SQL을 실행하는 어노테이션이 있는 메소드의 구문에서 "위치 지정된 갱신 및 삭제 사항 구문" 섹션을 참조하십시오.

프로시저

위치 지정된 갱신 및 삭제를 수행하기 위한 코드를 작성하려면 다음을 수행하십시오.

  1. 커서 위치를 지정하는 SELECT문을 실행하기 위한 어노테이션이 있는 메소드를 선언할 때, @Cursor 어노테이션의 cursorName 속성을 사용하여 커서의 이름을 지정하십시오. 이 메소드는 java.sql.ResultSet 오브젝트나 Iterator 오브젝트를 리턴해야 합니다.
    주의: SELECT문에 FOR UPDATE절이 포함되어 있지만 @Cursor 어노테이션의 concurrency 속성을 java.sql.ResultSet.CONCUR_READ_ONLY(기본값)로 설정하는 경우, FOR UPDATE절이 속성보다 우선합니다. pureQuery는 커서를 갱신 가능한 커서로 엽니다.
  2. 커서를 사용하는 UPDATE 또는 DELETE문을 실행하기 위한 어노테이션이 있는 메소드를 선언할 때, @Update 어노테이션에서 positionedCursorName 속성을 사용하여 커서의 이름을 지정하십시오.

SELECT문과 UPDATE문을 사용하는 예는 데이터베이스에 대해 SQL을 실행하는 어노테이션이 있는 메소드의 구문에서 "위치 지정된 갱신 및 삭제 사항 구문" 섹션을 참조하십시오.

피드백