120 votes

Impossible d'émettre des instructions de manipulation de données avec executeQuery()

Dans MySQL, j'ai deux tables, tableA et tableB. J'essaie d'exécuter deux requêtes :

executeQuery(query1) 
executeQuery(query2)

Mais je reçois l'erreur suivante :

can not issue data manipulation statements with executeQuery().

Qu'est-ce que ça veut dire ?

54voto

Jaskey Points 368

Lorsque vous exécutez une instruction DML, vous devez utiliser executeUpdate/execute plutôt que executeQuery.

Voici une brève comparaison :

executeQueryVSexecuteUpdateVSexecute

46voto

Forrest Points 224

Si vous utilisez une botte à ressort, ajoutez simplement une annotation @Modifying.

@Modifying
@Query
(value = "UPDATE user SET middleName = 'Mudd' WHERE id = 1", nativeQuery = true)
void updateMiddleName();

17voto

OMG Ponies Points 144785

Utilisez executeUpdate() pour émettre des déclarations de manipulation de données. executeQuery() est uniquement destiné à des requêtes SÉLECTIONNÉES (c'est-à-dire des requêtes qui renvoient un ensemble de résultats).

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