Partager via


Utilisation d'une instruction SQL avec des paramètres

Télécharger le pilote JDBC

Pour utiliser des données dans une base de données SQL Server à l’aide d’une instruction SQL qui contient des paramètres IN, vous pouvez utiliser la méthode executeQuery de la classe SQLServerPreparedStatement . Cette classe retourne un SQLServerResultSet qui contient les données demandées. Commencez par créer un objet SQLServerPreparedStatement à l’aide de la méthode prepareStatement de la classe SQLServerConnection .

Lorsque vous construisez votre instruction SQL, les paramètres IN sont spécifiés à l’aide du ? caractère (point d’interrogation), qui agit comme un espace réservé pour les valeurs de paramètre passées dans l’instruction SQL. Pour spécifier une valeur pour un paramètre, utilisez l’une des méthodes setter de la classe SQLServerPreparedStatement. Le type de données de la valeur que vous passez dans l’instruction SQL détermine la méthode setter que vous utilisez.

Lorsque vous transmettez une valeur à la méthode setter, vous devez spécifier non seulement la valeur réelle à utiliser dans l'instruction SQL, mais également la position ordinale du paramètre dans l'instruction. Par exemple, si votre instruction SQL contient un paramètre unique, sa valeur ordinale est 1. Si l’instruction contient deux paramètres, la première valeur ordinale est 1, tandis que la deuxième valeur ordinale est 2.

Dans l’exemple suivant, une connexion ouverte à la base de données d'exemple AdventureWorks2025 est transmise à la fonction. Ensuite, une instruction préparée SQL est construite et exécutée avec une valeur de paramètre String unique. Les résultats sont ensuite lus à partir du jeu de résultats.

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

Voir aussi

Utilisation d'instructions SQLPerformances des paramètres des instructions SQL préparées