Jak uzyskać wartości parametrów wiązania z obiektu Oracle JDBC PreparedStatement
Chcę zaimplementować rejestrowanie wszystkich wykonanych instrukcji z rzeczywistymi parametrami powiązania podczas korzystania z Oracle JDBC. I wolałabym, aby można było utworzyć taką metodę rejestrowania tylko przekazując obiekt PreparedStatement jako parametr.
Na przykład stworzyłem PreparedStatement i powiązałem jeden parametr
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM employees WHERE employee_id = ?");
ps.setInt(1,1);
Teraz chciałbym móc pobrać z ps rzeczywistą instrukcję SQL „SELECT * FROM workers WHERE Employe_id = 1”, którą mogę umieścić w pliku dziennika.
Jak dotąd odkryłem, że mogę użyć
((oracle.jdbc.driver.OracleStatement) ps).getOriginalSql()
zdobyć
SELECT * FROM employees WHERE employe_id = ?
Teraz potrzebuję jakiegoś sposobu, aby uzyskać listę bieżących zmiennych powiązań z ps, aby móc zastąpić? z wartościami parametrów wiązania.
Próbowałem zajrzeć do ps.getClass (). GetDeclaredFields () i ps.getClass (). GetSuperclass (). GetDeclaredFields (), ale do tej pory nie udało się znaleźć miejsca, w którym przechowywane są wartości parametrów wiązania i ich typy.
Jakieś sugestie, gdzie ich szukać?