Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens « java.sql.SQLException : index de paramètre hors plage » ?

Pourquoi est-ce que j'obtiens « java.sql.SQLException : index de paramètre hors plage » ?

Susan Sarandon
Libérer: 2024-12-24 00:24:20
original
1136 Les gens l'ont consulté

Why Am I Getting

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

Cette erreur se produit lorsque vous essayez de définir un paramètre dans une instruction préparée qui n'a pas d'espace réservé correspondant dans le SQL requête.

Causes :

  • La requête SQL n'inclut pas suffisamment d'espaces réservés (?) pour le nombre de paramètres définis dans l'instruction.
  • Vous utilisez par erreur des instructions paramétrées avec des instructions non paramétrées requêtes.

Solution :

Pour résoudre cette erreur, assurez-vous que la requête SQL contient le nombre correct d'espaces réservés pour les paramètres en cours de définition. Par exemple :

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);
Copier après la connexion

Remarques supplémentaires :

  • Les index des paramètres commencent à 1, alors assurez-vous de les définir dans le bon ordre.
  • Ne citez pas les espaces réservés dans la requête SQL, car cela les traiterait comme une chaîne valeurs.
  • Si vous utilisez une requête non paramétrée, vous devez définir les paramètres directement dans la chaîne de requête :
String sql = String.format("INSERT INTO tablename (col1, col2, col3) VALUES (%s, %s, %s)", val1, val2, val3);
Copier après la connexion

Références :

  • Tutoriel JDBC - Déclarations préparées : https://docs.oracle.com/javase/tutorial/jdbc/preparedstatements.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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal