addBatch() verwendet zusammen mit autoCommit = true
Habe ich eine situation wie diese :
con.setAutoCommit(true);
Statement stmt = con.createStatement();
stmt.addBatch(query);//add all the queries
stmt.executeBatch();
Wird jede Abfrage separat zu Begehen, oder es werden einem commit für die gesamte Partie?
Hinweis : Die Datenbank ist Oracle 11
- Warum sind Sie mit autoCommit wenn Sie beabsichtigen, Sie zu verwenden von batches?
- Seine eine legacy-code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gemäß der JDBC-Spezifikation des genauen Verhaltens einer batch-Ausführung mit auto-commit aktiviert ist, ist die Implementierung definiert. So kommt es auf die Datenbank und Ihr Treiber, und es ist besser, keine Annahmen über das genaue Verhalten und ausschalten des auto-commit bei der Verwendung von batch ausgeführt wird.
JDBC 4.1, Abschnitt 14.1.1 sagt:
Diese sagt nur etwas über das Verhalten bei Fehlerbedingungen, aber die Implikation ist, dass einzelne Aussagen möglicherweise bereits begangen wurde, wenn eine andere Anweisung in der batch-löst eine Ausnahme aus.
Vom oracle-Dokumentation :
So erhalten Sie commit nach jeder Abfrage.
Jede Abfrage Begehen wird, für eine einzige commit-schalten Sie auto-commit und commit nach executeBatch()