2 votes

Erreur dans la requête JDBC

sql  = "sélectionnez milk_rate à partir de special_milk_rate 
   où code_producer_id= ? et effective_from <= ? 
   et effective_till >= ?"

J'obtiens une erreur dans cette requête dans mon code JDBC

Exception:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Vous avez une erreur dans votre syntaxe SQL; vérifiez le manuel qui correspond à la version de votre serveur MySQL pour la syntaxe correcte à utiliser près de '? et effective_from <= ? et effective_till >= ?' à la ligne 1

Mais quand je l'exécute dans l'invite de commande MySQL avec des valeurs, ça fonctionne bien là-bas.

1voto

Jeanne Boyarsky Points 5968
ResultSet rst= prest.executeQuery(sql);

C'est incorrect. Il devrait être executeQuery().

Le sql est passé à execute lorsque l'on utilise un Statement. Il est passé à PreparedStatement à la place lors de l'utilisation de variables de liaison. Comme vous utilisez l'API Statement, JDBC l'exécute sans substituer vos variables de liaison et se demande quoi faire avec les points d'interrogation littéraux.

0voto

Daniel Points 13823

Vous devez utiliser des instructions préparées au lieu de "normales" pour que les points d'interrogation soient remplacés par des paramètres.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X