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ć?

questionAnswers(2)

yourAnswerToTheQuestion