Mehrere Abfragen in einer einzigen Anweisung mit JDBC
JDBC ermöglicht die Ausführung mehrerer SQL-Anweisungen in einem einzigen Vorgang. Dies kann in Situationen nützlich sein, in denen Sie mehrere unabhängige Aktionen ausführen oder mehrere Tabellen innerhalb einer einzelnen Transaktion aktualisieren müssen.
Beispielcode:
Bedenken Sie den folgenden Beispielcode: die das Verhalten der von Ihnen erwähnten MySQL-Abfrage emuliert:
String sqlQuery = "SELECT * FROM TABLE; INSERT INTO TABLE;"; Statement statement = connection.createStatement(); statement.execute(sqlQuery);
Methode 1: Verbindung Eigenschaft
Um die Ausführung mehrerer Abfragen in einer einzigen Anweisung zu ermöglichen, können Sie die Verbindungseigenschaft „allowMultiQueries“ auf „true“ setzen. Dadurch wird der JDBC-Treiber angewiesen, die Ausführung mehrerer durch Semikolons getrennter Abfragen zuzulassen.
String url = "jdbc:mysql://localhost:3306/databaseinjection?allowMultiQueries=true"; Connection connection = DriverManager.getConnection(url, sqlUsername, sqlPassword);
Methode 2: Gespeicherte Prozedur
Alternativ können Sie eine gespeicherte Prozedur erstellen in Ihrer Datenbank, die die mehreren Abfragen kapselt. Rufen Sie dann die gespeicherte Prozedur von Java aus mit einem CallableStatement auf. Dadurch können Sie mehrere von der Prozedur zurückgegebene ResultSet-Objekte erfassen.
// Create a stored procedure String storedProcedure = "CREATE PROCEDURE multi_query() BEGIN SELECT * FROM TABLE; INSERT INTO TABLE; END;"; // Call the stored procedure CallableStatement cstmt = connection.prepareCall("{call multi_query()}"); cstmt.execute(); // Retrieve result sets while (cstmt.getMoreResults()) { ResultSet resultSet = cstmt.getResultSet(); // Handle the result set here }
Vorteile mehrerer Abfragen:
Hinweis:
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere SQL-Anweisungen in einer einzigen JDBC-Anweisung ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!