Maison > Java > javaDidacticiel > Pourquoi est-ce que je reçois une erreur « Index des paramètres hors plage » dans le code de ma base de données Java ?

Pourquoi est-ce que je reçois une erreur « Index des paramètres hors plage » dans le code de ma base de données Java ?

DDD
Libérer: 2024-12-13 01:51:10
original
566 Les gens l'ont consulté

Why Am I Getting a

Erreur d'index de paramètre hors plage dans la base de données Java

Lorsque vous essayez d'interagir avec une base de données à l'aide de Java, vous pouvez rencontrer l'erreur "java .sql.SQLException : index de paramètre hors plage (1 > nombre de paramètres, soit 0)". Cette erreur indique une divergence entre l'instruction SQL et les valeurs fournies pour ses paramètres.

Cause :

L'erreur se produit lorsque vous tentez de définir un paramètre à l'aide de PreparedStatement. objet, mais l'instruction SQL correspondante n'inclut pas d'espace réservé (?) pour ce paramètre. L'utilisation de setString() ou d'autres méthodes de définition sans espace réservé correspondant dans la requête déclenchera cette erreur.

Solution :

Pour résoudre cette erreur, assurez-vous que votre instruction SQL contient des espaces réservés pour chaque paramètre que vous souhaitez définir via l'objet PreparedStatement. Les espaces réservés doivent être représentés sous forme de points d'interrogation (?) dans la déclaration.

Exemple :

Déclaration incorrecte :

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)";
Copier après la connexion

Déclaration correcte :

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)";
Copier après la connexion

Supplémentaire Considérations :

  • Les index des paramètres commencent à 1, donc le premier espace réservé de l'instruction doit être attribué au premier paramètre que vous avez défini via PreparedStatement.
  • Évitez d'utiliser simple ou double guillemets autour des espaces réservés, car cela les interprétera comme des valeurs de chaîne plutôt que comme des valeurs de chaîne. espaces réservés.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal