nombre de paramètres, soit 0)" Problème Vous rencontrez l'erreur pendant que..."/> nombre de paramètres, soit 0)" Problème Vous rencontrez l'erreur pendant que...">

Maison >Java >javaDidacticiel >Pourquoi mon Java PreparedStatement renvoie-t-il « Index des paramètres hors plage » ?

Pourquoi mon Java PreparedStatement renvoie-t-il « Index des paramètres hors plage » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-25 21:31:09836parcourir

Why Does My Java PreparedStatement Throw

Erreur : "java.sql.SQLException : index de paramètre hors plage (1 > nombre de paramètres, qui est 0)"

Problème

Vous rencontrez l'erreur en essayant d'insérer des données dans une base de données, accompagnée du message "java.sql.SQLException : Parameter index out of range (1 > nombre de paramètres, qui est 0)".

Cause

Cette erreur se produit lorsque vous appelez les méthodes setXxx() sur un PreparedStatement sans spécifier d'espaces réservés (?) dans le SQL requête. Par exemple :

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1); // Error occurs here

Solution

Pour résoudre ce problème, incluez des espaces réservés dans la requête SQL :

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1);

Notez que les index des paramètres commencent à 1, et il y a pas besoin de citer des espaces réservés dans la chaîne SQL. Cela entraînera la même erreur.

Ressources supplémentaires

  • [Tutoriel JDBC - Déclarations préparées](https://docs.oracle.com/javase/tutorial/jdbc/ basics/prepared.html)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn