Es ist nicht von der JDBC-Spezifikation vorgeschrieben, aber einige JDBC-Treiber lassen die %code% von %code% die Abfrage, die ausgeführt wird, zurückgeben, und MySQL Connector / J hat dieses Verhalten (oder zumindest vor ein paar Jahren).
%Vor%Hi Ich implementiere den folgenden Code, der SQL von PreparedStatement holt. Keine Notwendigkeit, ein Glas und Treiber zu verwenden.
%Vor%Ich kann dir sagen, was es ist. Wenn Sie MySQL 4.1 oder neuer mit Connector / J 3.1 oder neuer verwenden, wird es etwa so aussehen:
%Vor%Dies liegt daran, dass MySQL serverseitige vorbereitete Anweisungen .
(Wahrscheinlicher verwendet es das binäre Protokoll, aber dieser Code dient nur dazu, einen Punkt zu machen)
Etwas andere Annäherung von allen Antworten hier,
Wenn Sie mit den Debugging-Optionen in Eclipse vertraut sind. Sie können Folgendes versuchen:
Legen Sie einen Haltepunkt bei %code%
Klicken Sie mit der rechten Maustaste auf Ihre Anwendung, sagen Sie %code% select %code% (oder Was auch immer in Ihrem Fall anwendbar ist, z. B. SpringBoot App etc.
Führen Sie den Schritt aus, der Sie zum in der Frage erwähnten Code führt.
Wenn Sie %code% in %code% von Eclipse überprüfen, finden Sie Variablen wie %code% , %code% (entsprechend Ihrem Code)
Was immer Sie als Wert von %code% sehen, wäre die vollständige SQL-Abfrage, die Sie benötigen.
Auch wenn Sie diese Variable nicht immer ansehen möchten, können Sie %code% versuchen und Ihre vollständige SQL-Abfrage in Logs drucken.
Sie können nicht, da Java nicht dafür verantwortlich ist, es zu konstruieren. Vorbereitete Anweisungen werden in MySQL unterstützt, daher sendet Java das tatsächlich parametrisierte SQL ("ID des Benutzers mit Name =?") Direkt an MySQL zusammen mit den Parametern
Ich arbeite mit %code% mit MySQL Server.
Beispiel:
%Vor%Wie kann ich die vollständige SQL-Abfrage erhalten, die auf dem MySQL-Server ausgeführt wird?
Danke!
Sie können nicht, da Java nicht dafür verantwortlich ist, es zu konstruieren. Vorbereitete Anweisungen werden in MySQL unterstützt, daher sendet Java das tatsächlich parametrisierte SQL ("ID des Benutzers mit Name =?") Direkt an MySQL zusammen mit den Parametern
Ich kann dir sagen, was es ist. Wenn Sie MySQL 4.1 oder neuer mit Connector / J 3.1 oder neuer verwenden, wird es etwa so aussehen:
%Vor%Dies liegt daran, dass MySQL serverseitige vorbereitete Anweisungen .
(Wahrscheinlicher verwendet es das binäre Protokoll, aber dieser Code dient nur dazu, einen Punkt zu machen)
Hi Ich implementiere den folgenden Code, der SQL von PreparedStatement holt. Keine Notwendigkeit, ein Glas und Treiber zu verwenden.
%Vor%Etwas andere Annäherung von allen Antworten hier,
Wenn Sie mit den Debugging-Optionen in Eclipse vertraut sind. Sie können Folgendes versuchen:
Legen Sie einen Haltepunkt bei stmt.executeQUery();
Klicken Sie mit der rechten Maustaste auf Ihre Anwendung, sagen Sie Debug As
select Java Application
(oder Was auch immer in Ihrem Fall anwendbar ist, z. B. SpringBoot App etc.
Führen Sie den Schritt aus, der Sie zum in der Frage erwähnten Code führt.
Wenn Sie Variables tab
in Debug Perspective
von Eclipse überprüfen, finden Sie Variablen wie myQuery
, stmt
(entsprechend Ihrem Code)
Was immer Sie als Wert von stmt
sehen, wäre die vollständige SQL-Abfrage, die Sie benötigen.
Auch wenn Sie diese Variable nicht immer ansehen möchten, können Sie Java Logging
versuchen und Ihre vollständige SQL-Abfrage in Logs drucken.
Tags und Links java mysql prepared-statement