Partager via


Utilisation d'une instruction SQL avec paramètres

Pour travailler sur des 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 de 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 est 1 ; si l'instruction contient deux paramètres, la première valeur ordinale est 1 et la seconde 2.

Dans l'exemple suivant, une connexion ouverte à l'exemple de base de données SQL Server 2005 AdventureWorks 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 {
      String SQL = "SELECT LastName, FirstName FROM Person.Contact WHERE LastName = ?";
      PreparedStatement pstmt = con.prepareStatement(SQL);
      pstmt.setString(1, "Smith");
      ResultSet rs = pstmt.executeQuery();

      while (rs.next()) {
         System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
      }
      rs.close();
      pstmt.close();
   }
   catch (Exception e) {
      e.printStackTrace();
   }
}

Voir aussi

Autres ressources

Utilisation des instructions avec SQL