Jdbc multiple delete

J'ai besoin de faire une suppression multiple avec les paramètres. Je sais qu'il existe cette méthode sur Statement mais elle est sans paramètres. Et ceci c'est la même chose (pas de paramètres).

Comment puis-je faire cela en un seul appel à la base de données:

delete from table1 où id_table1 =: id_table1

delete from table2 où id_table2 =: id_table2

delete from table3 où id_table3 =: id_table3

0
Pourquoi est-ce un problème de faire plusieurs appels?
ajouté l'auteur JB Nizet, source

2 Réponses

Vous ne pouvez pas puisque vos instructions DELETE ne sont pas les mêmes. Si vous supprimiez de la même table, vous pourriez avoir une condition WHERE plus complexe ou créer un lot avec un PreparedStatement ; mais ici ce n'est pas possible.

0
ajouté
+1 pour PreparedStatement et une utilisation de batch.
ajouté l'auteur Sajmon, source

Selon mon opinion, utilisez plusieurs instructions de suppression dans une transaction ou utilisez des déclencheurs pour effectuer les suppressions en cascade ou soumettre un lot comme suit:

0
ajouté
Ok, si ce n'est pas possible. Avec docs.oracle.com/javase/7/docs/api/java/sql/… je peux effectuer une suppression multiple: addBatch (" delete from table1 où id_table1 = "+ id_table1); addBatch ("supprimer de table2 où id_table2 =" + id_table2), mais ce n'est pas ce que je veux.
ajouté l'auteur Blocked, source
Ici, ce n'est pas possible, car vos instructions delete ne sont pas identiques
ajouté l'auteur Shamse, source