Maison > Java > javaDidacticiel > Pourquoi `executeQuery(String)` provoque-t-il des erreurs de syntaxe SQL avec PreparedStatements ?

Pourquoi `executeQuery(String)` provoque-t-il des erreurs de syntaxe SQL avec PreparedStatements ?

Barbara Streisand
Libérer: 2024-12-06 11:24:16
original
556 Les gens l'ont consulté

Why Does `executeQuery(String)` Cause SQL Syntax Errors with PreparedStatements?

Invocation de méthode incorrecte provoquant une erreur de syntaxe lors de l'exécution de PreparedStatement

Lors de l'exécution d'une requête SQL à l'aide d'un PreparedStatement, il est important de respecter la syntaxe et la méthode d'exécution correctes pour éviter erreurs de syntaxe.

Un problème courant survient lors de la tentative d'exécution de la requête en appelant executeQuery(String) sur le Objet PreparedStatement. Ceci est incorrect, car cela remplace la requête préparée par la requête d'origine.

L'approche correcte consiste à appeler la méthode executeQuery() sans aucun argument, comme démontré ci-dessous :

PreparedStatement s = conn.prepareStatement(query);
s.setInt(1, intValue);
s.setString(2, strValue);        
rs = s.executeQuery(); // OK!
Copier après la connexion

Par en effectuant cet ajustement, vous vous assurez que la requête préparée est exécutée correctement, en éliminant l'erreur "Vous avez une erreur dans votre syntaxe SQL".

Supplémentaire Remarques :

  • Il est crucial d'assurer une bonne gestion des ressources en fermant les objets Connection, Statement et ResultSet dans un bloc try-with-resources pour éviter les fuites de ressources.
  • Le message d'erreur spécifique à votre cas : "Vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MySQL pour connaître la bonne syntaxe à utiliser près de '? ou MemberName = ?' à la ligne 1", indique que MySQL a rencontré un élément de syntaxe non reconnu "?" dans la requête préparée, soulignant la nécessité d'une liaison de paramètres correcte.

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
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