Heim > Java > javaLernprogramm > Wie kann ich die eigentliche SQL von einem PreparedStatement in Java ausführen lassen?

Wie kann ich die eigentliche SQL von einem PreparedStatement in Java ausführen lassen?

Patricia Arquette
Freigeben: 2024-11-11 08:42:02
Original
554 Leute haben es durchsucht

How to Get the Actual SQL Executed by a PreparedStatement in Java?

Abrufen der tatsächlichen SQL-Ausführung durch ein PreparedStatement

In der Java-Programmierung trifft man auf eine gängige Dienstprogrammmethode, die eine Datenbankverbindung öffnet, eine erstellt PreparedStatement, führt es aus und gibt eine Ergebnismenge zurück. Für Debugging-Zwecke wäre die Protokollierung der tatsächlich ausgeführten SQL-Anweisung von Vorteil, aber die einfache Protokollierung der ursprünglichen SQL-Vorlage (mit Platzhaltern) reicht nicht aus.

SQL von PreparedStatement kann nicht abgerufen werden

Leider gibt es aufgrund der Art vorbereiteter Anweisungen keine Möglichkeit, die tatsächlich auszuführende SQL-Abfrage abzurufen. Vorbereitete Anweisungen sind in zwei Komponenten unterteilt: die Anweisung selbst (mit Platzhaltern) und die gebundenen Variablen. Der Datenbankserver analysiert und parst die Anweisung und die gebundenen Variablen werden zum Ausführen der Anweisung verwendet. Allerdings findet weder auf der Java- noch auf der Datenbankseite eine Rekonstruktion der eigentlichen SQL-Abfrage statt.

Debugging-Alternativen

Für Debugging-Zwecke gibt es zwei alternative Lösungen:

  1. Anweisungscode ausgeben: Protokollieren Sie den Anweisungscode mit Platzhaltern und der Liste der gebundenen Elemente Variablen.
  2. Manuelle SQL-Abfrage erstellen: Erstellen Sie manuell eine SQL-Abfrage, indem Sie den Anweisungscode mit den gebundenen Variablenwerten kombinieren.

Beispiel

Betrachten Sie eine Aussage mit Platzhaltern:

SELECT * FROM USERS WHERE ID = ?
Nach dem Login kopieren

Und gebunden Variable:

int userId = 123;
Nach dem Login kopieren

Die manuelle SQL-Abfrage wäre:

SELECT * FROM USERS WHERE ID = 123
Nach dem Login kopieren

Die dann zu Debugging-Zwecken protokolliert würde.

Das obige ist der detaillierte Inhalt vonWie kann ich die eigentliche SQL von einem PreparedStatement in Java ausführen lassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage