Mehrere Abfragen ausgeführt, die in java in einzelne Anweisung
Hallo, ich Frage mich ob es möglich ist, auszuführen, so etwas wie dies unter Verwendung von JDBC, da es derzeit eine Ausnahme, obwohl es möglich ist, im MySQL query browser.
"SELECT FROM * TABLE;INSERT INTO TABLE;"
Während ich erkennen, dass es möglich ist, den SQL-Abfrage-string aufgeteilt werden, und die Anweisung wird ausgeführt, zweimal, aber ich Frage mich, ob es eine einmalige Ansatz für diese.
String url = "jdbc:mysql://localhost:3306/";
String dbName = "databaseinjection";
String driver = "com.mysql.jdbc.Driver";
String sqlUsername = "root";
String sqlPassword = "abc";
Class.forName(driver).newInstance();
connection = DriverManager.getConnection(url+dbName, sqlUsername, sqlPassword);
in einer gespeicherten Prozedur, rufen Sie die gespeicherte Prozedur. heißt, Sie haben auch nicht haben, bereitstellen Ihren code, wenn Sie eine änderung vornehmen möchten.
Es ist eine Eigenschaft, die Sie haben zu setzen in-Verbindung-Zeichenfolge
wahrscheinlich duplizieren : so führen Sie zusammengesetzte sql-Abfragen in java?[1] [1]: stackoverflow.com/questions/6773393/...
Hi Rahul, für dieses Projekt verwende ich eine einfache alte connection-Objekt und weißt du, wo ich einstellen sollte "allowMultiQueries=true". Habe die connection-Objekt-code in die Frage
Es ist eine Eigenschaft, die Sie haben zu setzen in-Verbindung-Zeichenfolge
allowMultiQueries=true
.wahrscheinlich duplizieren : so führen Sie zusammengesetzte sql-Abfragen in java?[1] [1]: stackoverflow.com/questions/6773393/...
Hi Rahul, für dieses Projekt verwende ich eine einfache alte connection-Objekt und weißt du, wo ich einstellen sollte "allowMultiQueries=true". Habe die connection-Objekt-code in die Frage
InformationsquelleAutor MilindaD | 2012-05-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich Frage mich, ob es möglich ist, auszuführen, so etwas wie dies unter Verwendung von JDBC.
Ja, es ist möglich. Es gibt zwei Möglichkeiten, soweit ich weiß. Sie sind
getrennt durch ein Semikolon standardmäßig.
Folgenden Beispiele veranschaulichen die oben genannten zwei Möglichkeiten.
Beispiel 1: ( Um die es erlauben, mehrere Anfragen ):
Beim senden einer Verbindungsanforderung, die Sie benötigen zum Anhängen einer Eigenschaft
allowMultiQueries=true
an die Datenbank-url. Dies ist eine zusätzliche Verbindung Eigentum an diesen, wenn bereits vorhanden, einige, wieautoReConnect=true
usw.. zulässige Werte fürallowMultiQueries
Eigenschafttrue
,false
,yes
, undno
. Jeder andere Wert wird zurückgewiesen zur Laufzeit mit einerSQLException
.Es sei denn, eine solche Anweisung übergeben wird, wird eine
SQLException
geworfen wird.Verwenden Sie
execute( String sql )
oder seine anderen Variante zu Holen, die Ergebnisse der Ausführung der Abfrage.Durchlaufen und verarbeiten der Ergebnisse, die Sie benötigen folgenden Schritte aus:
Beispiel 2: die Schritte zu Folgen:
select
, undDML
Abfragen.CallableStatement
.ResultSet
s ausgeführt-in-Verfahren.DML-Ergebnisse können nicht erobert werden, kann aber ein weiteres Problem
select
um herauszufinden, wie die Zeilen betroffen sind in der Tabelle.
Beispieltabelle und-Verfahren:
Call-Verfahren aus Java:
Grund? Etwaige Fehler beobachtet? Haben Sie überprüfen, ob der Treiber diese Funktion unterstützt?
ich habe allowMultiQueries=true und funktioniert einwandfrei 🙂
Danke @RavinderReddy
InformationsquelleAutor Ravinder Reddy
Können Sie Batch-update, aber Abfragen muss handeln(d.h. insert,update und delete) Abfragen
InformationsquelleAutor Himanshu Mohta
Hinweis: Wenn Sie mehr als eine Eigenschaft Verbindung dann trennen Sie Sie mit:
Geben Sie so etwas wie:
Ich hoffe das hilft einigen.
Grüße,
Glyn
InformationsquelleAutor Glyn
Basierend auf meinen Tests, die richtige Flagge ist "allowMultiQueries=true"
InformationsquelleAutor muye
Warum versuchen Sie nicht und schreiben Sie eine
Stored Procedure
?Können Sie die
Result Set
aus und in der gleichenStored Procedure
können SieInsert
was Sie wollen.Die einzige Sache ist, Sie möglicherweise nicht die neu eingefügten Zeilen in der
Result Set
wenn SieInsert
nach derSelect
.InformationsquelleAutor JHS
Ich denke das ist der einfachste Weg für multy Auswahl/update/insert/delete. Sie können so viele update/insert/delete, wie u wollen nach der Wahl (Sie müssen wählen Sie zunächst(ein dummy, wenn nötig)) mit executeUpdate(str) (einfach neue int(count1,count2,...)), und wenn u brauchen eine neue Auswahl in der Nähe 'Aussage' und 'Verbindung' und machen neue für die nächste auswählen. Wie Beispiel:
Ich hoffe, es hilft
InformationsquelleAutor Alexandros Topalidis