Es gibt keine endgültige SQL-Zeichenfolge, die Version mit Platzhaltern ist, was tatsächlich an den Server gesendet wird. Die Daten werden vollständig getrennt davon gesendet, wenn Sie Abfragen für die vorbereitete Anweisung ausführen.
Sie können die Zeichenfolge mit Platzhaltern und dann jeden Datensatz einzeln protokollieren.
Ihr Code könnte sie im Protokoll zu einer tatsächlichen SQL-Zeichenfolge kombinieren, wenn das ist, was Sie wollen:
String query = "SELECT a FROM b WHERE c = ?";
...
pstmt.setString(1, "asd");
logSQL(query, "asd");
logSQL
würde dann tatsächlich "SELECT a FROM b WHERE c = 'asd'"
anmelden. Could be that someone has actually implemented this before...
Siehe: [Wie kann ich die SQL eines PreparedStatement erhalten?] (Http://stackoverflow.com/questions/2382532/how-can-i-get-the-sql-of-a-preparedstatement) – Reimeus