Partager via


Utilisation d'une instruction SQL avec paramètres

Télécharger le pilote JDBC

Pour utiliser les données d’une base de données SQL Server en utilisant une instruction SQL contenant des paramètres IN, vous pouvez utiliser la méthode executeQuery de la classe SQLServerPreparedStatement pour retourner un SQLServerResultSet contenant les données demandées. Pour ce faire, vous devez commencer par créer un objet SQLServerPreparedStatement à l’aide de la méthode prepareStatement de la classe SQLServerConnection.

Lors de la construction d'une instruction SQL, les paramètres IN sont spécifiés à l'aide du caractère ? (point d'interrogation) qui fait office d'espace réservé pour les valeurs de paramètre qui sont transmises par la suite à l'instruction SQL. Pour spécifier une valeur pour un paramètre, vous pouvez utiliser l'une des méthodes de définition de la classe SQLServerPreparedStatement. La méthode setter que vous utilisez est déterminée par le type de données de la valeur que vous souhaitez transmettre dans l'instruction SQL.

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 seul paramètre, sa valeur ordinale sera 1. Si l’inscription contient deux paramètres, la première valeur ordinale sera 1, tandis que la deuxième sera 2.

Dans l’exemple suivant, une connexion ouverte à l’exemple de base de données AdventureWorks2022 est transmise à la fonction, une instruction SQL préparée est générée et exécutée avec une seule valeur de paramètre String, puis les résultats sont lus dans le 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 avec SQL