Compartilhar via


Como usar uma instrução SQL com parâmetros

Baixar o JDBC Driver

Para trabalhar com dados em um banco de dados do SQL Server usando uma instrução SQL que contém parâmetros IN, você pode usar o método executeQuery da classe SQLServerPreparedStatement . Essa classe retorna um SQLServerResultSet que contém os dados solicitados. Primeiro, crie um objeto SQLServerPreparedStatement usando o método prepareStatement da classe SQLServerConnection .

Quando você constrói sua instrução SQL, os parâmetros IN são especificados usando o ? caractere (ponto de interrogação), que atua como um espaço reservado para os valores de parâmetro que são passados para a instrução SQL. Para especificar um valor para um parâmetro, use um dos métodos setter da classe SQLServerPreparedStatement. O tipo de dados do valor que você passa para a instrução SQL determina o método setter que você usa.

Ao passar um valor para o método setter, você deve especificar não somente o valor real a ser usado na instrução SQL, mas também o posicionamento ordinal do parâmetro na instrução SQL. Por exemplo, se a instrução SQL contiver um único parâmetro, seu valor ordinal será 1. Se a instrução contiver dois parâmetros, o primeiro valor ordinal será 1, enquanto o segundo valor ordinal será 2.

No exemplo a seguir, uma conexão aberta com o banco de dados de exemplo AdventureWorks2025 é passada para a função. Em seguida, uma instrução preparada para SQL é construída e executada com um único valor de parâmetro String. Em seguida, os resultados são lidos do conjunto de resultados.

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();
    }
}

Confira também

Usando instruções com SQLDesempenho do parâmetro em declaração preparada