Führen Sie zwei verschiedene Abfragen in einer Transaktion aus

8

Ich versuche zwei Insert-Abfragen in einem Statement auszuführen, indem ich sie in einer Transaktion zusammenfasse.

Ich habe mir die addBatch -Methode angeschaut, aber wenn ich sie richtig verstehe, kann sie mit einem einzigen PreparedStatement verwendet werden, um dieselbe Einfügung mehrmals mit verschiedenen Parametern auszuführen oder um ein Statement -Objekt zum Hinzufügen zu verwenden mehr Abfragen an den Batch, aber ohne die Möglichkeit, Parameter hinzuzufügen (so könnte ich in der Lage sein, die Werte in der SQL-Zeichenfolge hinzuzufügen. SQL-Injection-Stil).

Ich habe auch einen naiven Ansatz versucht, beide Einfügungen in eine sql-Anweisung ( insert into table1 values(?, ?); insert into table2 values(?, ?); ) zu schreiben, aber so sieht PreparedStatement nur die ersten beiden Parameter und versucht, den 3. und 4. eine Ausnahme zu setzen / p>     

Noam Gal 01.02.2011, 09:02
quelle

1 Antwort

22

Sie können Autocommit deaktivieren, zwei separate Anweisungen ausführen und dann eine Transaktion manuell festschreiben:

%Vor%     
axtavt 01.02.2011, 09:08
quelle

Tags und Links