이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

8.3. 토토 캔 발행 및 결과 처리

발행하고 싶을 때마다SQL데이터베이스에 대한 명령문, A가 필요합니다진술또는준비 상태인스턴스. 일단 당신은진술또는준비 상태, 토토 캔를 발행 할 수 있습니다. 이것은 a를 반환합니다.resultSet전체 결과를 포함하는 인스턴스.예 8-1그림 이 과정.

예 8-1. 간단한 쿼리 처리JDCB

이 예제는 간단한 토토 캔를 발행하고 인쇄합니다. a를 사용하여 각 행의 첫 열진술.

Statement st = db.createstatement ();
resultSet rs = st.ExecuteQuery ( "columnfoo = 500"에서 mytable에서 선택 *);
while (rs.next ()) 
    System.out.print ( "열 1 반환");
    System.out.println (rs.getstring (1));

이 예제는 a를 사용하기 전과 동일한 토토 캔를 발행합니다.준비 상태그리고 바인드 토토 캔의 값.

int foovalue = 500;
preparedstatement st = db.preparestatement ( "columnfoo =?");
St.SetInt (1, foovalue);
resultSet rs = st.ExecuteQuery ();
while (rs.next ()) 
    System.out.print ( "열 1 반환");
    System.out.println (rs.getstring (1));

8.3.1. 사용 그만큼진술또는준비 상태인터페이스

다음은를 사용할 때 고려해야합니다.진술또는준비된 상태인터페이스 :

  • 단일을 사용할 수 있습니다진술당신만큼 여러 번 인스턴스 원하다. 열 자마자 만들 수 있습니다. 연결 및 연결 수명에 사용하십시오. 하지만 당신은 하나만 기억해야합니다resultSet|진술또는준비된 상태주어진 시간에.

  • 처리하는 동안 토토 캔를 수행 해야하는 경우resultSet, 간단히 할 수 있습니다 다른 생성 및 사용진술.

  • 스레드를 사용하는 경우 몇몇은 데이터베이스, 별도를 사용해야합니다진술각 스레드마다. 참조윈 토토 : 문서 : 7.2 : 멀티 스레드 또는 서블릿 환경에서 드라이버 사용당신이 있다면 스레드 사용을 생각하면 중요한 것이 중요합니다 전철기.

  • 를 사용하여 완료 될 때성명서또는준비 상태닫아야합니다 그것.

8.3.2. 사용 그만큼resultSet인터페이스

다음은를 사용할 때 고려해야합니다.resultSet인터페이스 :

  • 값을 읽기 전에 전화해야합니다next (). 이것은 a가 있으면 true를 반환합니다 결과, 그러나 더 중요한 것은 행을 준비합니다 처리.

  • 아래JDBC사양은 한 번만 필드에 액세스해야합니다. 그것은 이 규칙을 고수하는 것이 가장 안전하지만 현재는하지만 그만큼PostgreSQL드라이버 원하는만큼 필드에 액세스 할 수 있습니다.

  • 닫아야합니다resultSet전화로close ()일단 사용을 마친 후 그것.

  • 일단 일단진술aresultSet, 현재 오픈resultSet인스턴스가 닫혔습니다 자동으로.

  • resultSet현재입니다 만 읽으십시오. 를 통해 데이터를 업데이트 할 수 없습니다.resultSet. 데이터를 업데이트하려면 당신은 a를 발행하여 구식으로해야합니다.SQL업데이트 문. 이것은와 일치합니다.JDBC그렇지 않은 사양 이 기능을 제공하도록 드라이버가 필요합니다.