Ausführen mehrerer Abfragen in einer einzigen Anweisung mit JDBC
In JDBC ist die Ausführung mehrerer Abfragen in einer einzigen Anweisung möglich, allerdings mit spezifischen Anforderungen .
Option 1: Mehrere konfigurieren Abfragen
Um mehrere durch ein Semikolon getrennte Abfragen auszuführen, setzen Sie die Datenbankverbindungseigenschaft „allowMultiQueries“ auf „true“.
String url = "jdbc:mysql:///test?allowMultiQueries=true";
boolean hasMoreResultSets = stmt.execute(multiQuerySqlString);
Anschließend durchlaufen Sie die Abfrageergebnisse mit:
while ( hasMoreResultSets || stmt.getUpdateCount() != -1 ) { if ( hasMoreResultSets ) { ResultSet rs = stmt.getResultSet(); // handle resultSet } else { int queryResult = stmt.getUpdateCount(); // handle DML updates } hasMoreResultSets = stmt.getMoreResults(); }
Option 2: Gespeichert Prozeduren
Erstellen Sie eine gespeicherte Prozedur, die die SELECT- und INSERT-Abfragen kombiniert. Führen Sie es dann mit einem CallableStatement aus:
CallableStatement cstmt = con.prepareCall("call multi_query()"); boolean hasMoreResultSets = cstmt.execute();
Durchlaufen Sie die zurückgegebenen Ergebnisse wie zuvor:
while (hasMoreResultSets) { ResultSet rs = stmt.getResultSet(); // handle resultSet }
Es ist wichtig zu beachten, dass diese Funktionalität zwar weitgehend unterstützt wird, dies jedoch möglicherweise nicht der Fall ist in allen JDBC-Treibern oder Datenbankimplementierungen verfügbar. Einzelheiten zur Kompatibilität finden Sie immer in der spezifischen Treiberdokumentation.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere SQL-Abfragen in einer einzigen JDBC-Anweisung ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!