Maison >base de données >tutoriel mysql >Pourquoi mon code Java génère-t-il une exception SQL « Index des paramètres hors plage » ?
Index des paramètres hors plage dans l'exception SQL : causes et solution
Rencontre de l'exception "java.sql.SQLException : index des paramètres hors de range (1 > nombre de paramètres, soit 0)" lors de l'insertion dans la base de données peut être frustrant. Cette erreur se produit lorsque vous essayez de définir une valeur de paramètre dans une instruction préparée alors que la requête SQL ne dispose pas des espaces réservés correspondants (?) pour ces paramètres.
Cause de l'erreur :
Cette erreur se produit lorsque vous tentez d'utiliser la méthode setXxx() sur PreparedStatement, mais que la chaîne de requête SQL ne dispose pas des espaces réservés nécessaires pour le paramètre spécifié. index.
Exemple de code incorrect :
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); // This will fail. preparedStatement.setString(2, val2); preparedStatement.setString(3, val3);
Solution :
Pour résoudre ce problème, vous devez modifiez la chaîne de requête SQL pour inclure des espaces réservés (?) Pour tous les paramètres que vous souhaitez set.
Exemple de code corrigé :
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); preparedStatement.setString(2, val2); preparedStatement.setString(3, val3);
Remarque :
Informations 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!