다음을 통해 공유


매개 변수와 함께 SQL 문 사용

JDBC 드라이버 다운로드

IN 매개 변수가 포함된 SQL 문을 사용하여 SQL Server 데이터베이스의 데이터를 사용하려면 SQLServerPreparedStatement 클래스의 executeQuery 메서드를 사용할 수 있습니다. 이 클래스는 요청된 데이터를 포함하는 SQLServerResultSet 를 반환합니다. 먼저 SQLServerConnection 클래스의 prepareStatement 메서드를 사용하여 SQLServerPreparedStatement 개체 만듭니다.

SQL 문을 생성할 때 IN 매개 변수는 SQL 문에 전달되는 매개 변수 값의 자리 표시자 역할을 하는 (물음표) 문자를 사용하여 ? 지정됩니다. 매개 변수의 값을 지정하려면 SQLServerPreparedStatement 클래스의 setter 메서드 중 하나를 사용합니다. SQL 문에 전달하는 값의 데이터 형식에 따라 사용하는 setter 메서드가 결정됩니다.

setter 메서드에 값을 전달할 때는 SQL 문에 사용할 실제 값뿐만 아니라 SQL 문에서의 매개 변수 서수 배치도 지정해야 합니다. 예를 들어 SQL 문에 단일 매개 변수가 포함된 경우 해당 서수 값은 1입니다. 문에 두 개의 매개 변수가 포함된 경우 첫 번째 서수 값은 1이고 두 번째 서수 값은 2입니다.

다음 예제에서는 AdventureWorks2025 샘플 데이터베이스에 대한 열린 연결이 함수에 전달됩니다. 그런 다음 SQL 준비된 문이 생성되고 단일 String 매개 변수 값으로 실행됩니다. 그런 다음 결과 집합에서 결과를 읽습니다.

public static void executeStatement(Connection con) {
    try(PreparedStatement pstmt = con.prepareStatement("SELECT LastName, FirstName FROM Person.Contact WHERE LastName = ?");) {
        pstmt.setString(1, "Smith");
        ResultSet rs = pstmt.executeQuery();

        while (rs.next()) {
            System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
        }
    }
    // Handle any errors that may have occurred.
    catch (SQLException e) {
        e.printStackTrace();
    }
}

참고 항목

SQL 문 사용Prepared Statement 매개 변수 성능