JDBC에서 ReadyStatement를 사용하여 IN 절 관리
IN 절이 포함된 쿼리를 실행할 때 값을 설정하는 것이 어려울 수 있습니다. 이 문서에서는 알려지거나 알려지지 않은 여러 값이 포함될 수 있는 IN 절을 미리 효과적으로 처리하는 방법을 살펴봅니다.
한 가지 접근 방식은 IN 절의 값 수를 기반으로 쿼리 문자열을 동적으로 생성하는 것입니다. 여기에는 각 값에 대한 자리 표시자(?)가 있는 문자열을 구성하는 작업이 포함됩니다.
var stmt = String.format("select * from test where field in (%s)", values.stream() .map(v -> "?") .collect(Collectors.joining(", ")));
또는 StringBuilder를 사용하여 자리 표시자를 추가하고 쿼리 문자열을 구성할 수 있습니다.
List values = ... StringBuilder builder = new StringBuilder(); for( int i = 0 ; i < values.size(); i++ ) { builder.append("?,"); } String placeHolders = builder.deleteCharAt(builder.length() - 1).toString(); String stmt = "select * from test where field in (" + placeHolders + ")";
한 번 자리 표시자 문자열이 생성되면 ReadyStatement에서 매개변수를 설정합니다. 반복적으로:
int index = 1; for( Object o : values ) { pstmt.setObject(index++, o); }
이러한 기술을 사용하면 알려진 값과 가변 개수의 값이 모두 포함된 IN 절을 효율적으로 처리하여 정확하고 최적화된 쿼리 실행을 보장할 수 있습니다.
위 내용은 JDBC ReadyStatements를 사용하여 IN 절을 효율적으로 관리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!