Maison >Java >javaDidacticiel >Pourquoi est-ce que j'obtiens « java.sql.SQLException : index de paramètre hors plage (1 > nombre de paramètres, soit 0) » dans mon code Java ?
nombre de paramètres, qui est 0)" dans My Java Code ? " /> nombre de paramètres, qui est 0)" dans Mon code Java ? " />
Dépannage "java.sql.SQLException : indice de paramètre hors plage (1 > nombre de paramètres, qui est 0)"
Dans le domaine de la programmation Java, l'erreur "java.sql.SQLException: Parameter index out of range (1 > number of settings, qui est 0)" se produit lors de la tentative pour exécuter une requête SQL en utilisant PreparedStatement sans fournir d'espaces réservés correspondants dans la chaîne de requête.
Cette erreur se produit spécifiquement lors de l'appel des méthodes setXxx() sur PreparedStatement, garantissant une liaison de données appropriée. Cependant, si la requête SQL n'en contient aucune. espaces réservés, l'erreur sera déclenchée.
Cause :
La cause première de l'erreur est la absence d'espaces réservés (?) dans la requête SQL. PreparedStatement s'appuie sur ces espaces réservés pour permettre l'insertion de paramètres de manière dynamique.
Solution :
Pour résoudre ce problème, vous devez modifier votre requête SQL pour inclure des espaces réservés pour chaque paramètre que vous souhaitez définir à l'aide des méthodes setXxx(). Par exemple, si vous avez une chaîne de requête. comme :
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)";
Vous devrez le modifier comme suit :
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)";
Il est important de noter que l'index du paramètre commence par 1. Par conséquent, vous n'avez pas besoin de citer les espaces réservés comme suit :
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES ('?', '?', '?')";
Cela entraînera la même erreur car l'analyseur SQL traite les espaces réservés entre guillemets comme des valeurs de chaîne réelles d'espaces réservés pour la liaison des paramètres.
Considérations supplémentaires :
Pour plus d'informations, il est recommandé de se référer aux ressources suivantes :
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!