Maison >Java >javaDidacticiel >Pourquoi est-ce que j'obtiens « java.sql.SQLException : index des paramètres hors plage » dans mon PreparedStatement ?
SQLException : index des paramètres hors plage
Lors de l'exécution d'une requête SQL paramétrée, vous pouvez rencontrer l'erreur "java.sql.SQLException : Indice de paramètre hors plage." Ce problème provient d'une incompatibilité entre le nombre de paramètres spécifiés dans la requête et le nombre de paramètres réels transmis à PreparedStatement.
Cause :
Cette erreur se produit lorsque vous essayez pour définir une valeur de paramètre à l'aide de la méthode setXxx() sur PreparedStatement, mais la requête SQL ne contient pas d'espace réservé correspondant (?) pour cela paramètre.
Solution :
Pour résoudre ce problème, assurez-vous que la requête SQL contient le nombre correct d'espaces réservés. L'index du paramètre commence par 1 et chaque espace réservé (?) désigne un paramètre spécifique qui doit être défini à l'aide de la méthode setXxx().
Par exemple :
// Assuming "val1", "val2", and "val3" are valid values String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)"; PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); preparedStatement.setString(2, val2); preparedStatement.setString(3, val3);
Éviter Citation des espaces réservés :
Il est important de noter que vous ne devez pas citer les espaces réservés dans la requête SQL. Si vous les citez, l'analyseur SQL les interprétera comme des valeurs de chaîne réelles, ce qui empêchera la liaison des paramètres.
Ressources supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!