Abrufen der konstruierten Abfrage aus einem PreparedStatement
Bei der Arbeit mit vorbereiteten Anweisungen in Java unter Verwendung von java.sql.PreparedStatement ist das Debuggen unerlässlich und überprüfen Sie die tatsächlich ausgeführte Abfrage. Es gibt jedoch keine inhärente Methode innerhalb der JDBC-API, um die erstellte Abfrage direkt abzurufen.
Lösung
Glücklicherweise können bestimmte JDBC-Treiber über PreparedStatement# eine Problemumgehung bieten. toString()-Methode.
Fragen Sie beim Treiber nach Implementierung
Treiber wie PostgreSQL 8.x und MySQL 5.x JDBC-Treiber geben möglicherweise die vollständige SQL-Abfrage zurück, wenn sie PreparedStatement#toString() aufrufen. So nutzen Sie diese Funktion:
<code class="java">System.out.println(preparedStatement);</code>
Alternative Option
Wenn dem JDBC-Treiber diese Funktionalität fehlt, sollten Sie die Verwendung eines Anweisungs-Wrappers in Betracht ziehen, der alle Aufrufe von setXxx()-Methoden abfängt und erstellt einen SQL-String, wenn toString() aufgerufen wird. Eine Bibliothek wie P6Spy bietet solche Funktionen.
Implementierung anfordern
In Fällen, in denen der Treiber das Abrufen der Abfrage nicht unterstützt, senden Sie eine Funktionsanfrage an das Entwicklungsteam. Das toString()-Verhalten kann implementiert werden, um zu Debugging-Zwecken Zugriff auf die erstellte Abfrage zu ermöglichen.
Das obige ist der detaillierte Inhalt vonWie kann ich die konstruierte Abfrage aus einem PreparedStatement in Java abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!