PreparedStatements

PreparedStatements는 명령문 인터페이스를 확장하고 SQL문에 매개변수를 추가하기 위한 지원을 제공합니다.

데이터베이스에 전달되는 SQL문은 결과를 리턴하기까지 2단계 프로세스를 거칩니다. 이 SQL문은 먼저 준비된 다음 처리됩니다. Statement 오브젝트를 사용하면 이러한 두 단계가 애플리케이션에 한 단계로 표시됩니다. PreparedStatements를 사용하면 이러한 두 단계를 분할할 수 있습니다. 준비 단계는 오브젝트가 작성될 때 발생하고 처리 단계는 executeQuery, executeUpdate 또는 execute 메소드가 PreparedStatement 오브젝트에 대해 호출될 때 발생합니다.

SQL 처리를 여러 단계로 분할할 수 있다고 해도 매개변수 마커를 추가하지 않으면 의미가 없습니다. 매개변수 마커는 준비 시에는 특정 값을 가지지 않지만 처리 시간 전에는 특정 값을 제공함을 데이터베이스에 알릴 수 있도록 애플리케이션에 배치됩니다. 매개변수 마커는 의문 부호로 SQL문에 표시됩니다.

매개변수 마커를 사용하면 특정 요청에 사용되는 일반 SQL문을 작성할 수 있습니다. 예를 들어, 다음 SQL문을 사용하십시오.

     SELECT * FROM EMPLOYEE_TABLE WHERE LASTNAME = 'DETTINGER'

이는 한 개의 값 즉, Dettinger라는 이름의 직원에 대한 정보만 리턴하는 특정 SQL문입니다. 매개변수 마커를 추가하면 명령문을 좀 더 탄력적으로 작성할 수 있습니다.

     SELECT * FROM EMPLOYEE_TABLE WHERE LASTNAME = ?

단순히 매개변수 마커를 값으로 설정하면 테이블에 있는 임의의 직원에 대한 정보를 얻을 수 있습니다.

PreparedStatements는 명령문에 대해 상당한 성능 개선을 제공합니다. 이전 명령문 예는 한 번의 준비 단계만을 거쳐 매개변수에 대해 여러 다른 값을 사용하여 반복적으로 처리될 수 있기 때문입니다.

참고: PreparedStatements를 사용하는 것은 원시 JDBC 드라이버의 명령문 풀링을 지원하기 위한 요구사항입니다.

준비된 명령문 작성, 결과 세트 특성 지정, 자동 생성된 키에 대한 작업 및 매개변수 마커 설정 등 준비된 명령문 사용에 대한 자세한 정보는 다음 페이지를 참조하십시오.