Normalerweise ist das Semikolon nicht Teil der eigentlichen Syntax einer Anweisung (da die meisten datenbankinternen APIs jeweils eine einzelne Anweisung ausführen). Stattdessen ist das Semikolon ein "end-of-statement" -Marker oder Anweisungstrennzeichen, das normalerweise in CLI- oder Skriptwerkzeugen für die Datenbank definiert ist. Dadurch kann dieses Tool wissen, wann eine Anweisung endet, sodass es diese einzelne Anweisung zur Ausführung an die Datenbank senden kann.
Auf der anderen Seite ist die JDBC API beabsichtigt, eine einzelne (!) Anweisung zu einem Zeitpunkt auszuführen, daher benötigen Sie kein solches Trennzeichen (die Anweisung ist die ganze Zeichenfolge). Dies bedeutet, dass ein Semikolon nicht benötigt wird, und da es nicht Teil der Syntax der eigentlichen Anweisung für viele Datenbanken ist, ist es auch ein Syntaxfehler, es einzuschließen. Einige JDBC-Treiber entfernen die letzte ;
von einer Anweisung zu 'reparieren', die einige Treiber nicht tun.
Einige Treiber erlauben - entgegen der JDBC-Spezifikation - mehrere Anweisungen als eine einzige Zeichenfolge auszuführen, dies muss normalerweise mit einer Verbindungseigenschaft aktiviert werden, zB für MySQL ist dies die Option allowMultiQueries
(Details siehe MySQL properties)).
In den meisten JDBC-Treibern, auch wenn Sie Semikolon zur separaten Anweisung hinzufügen, wird es nicht funktionieren ... – aleroot
Das Ausführen mehrerer Anweisungen in einer einzigen Zeichenfolge ist - nach Spezifikation - in JDBC nicht zulässig –