Как получить значения параметров связывания из объекта Oracle JDBC PreparedStatement

Я хочу реализовать ведение журнала всех выполненных операторов с фактическими параметрами связывания при использовании Oracle JDBC. И я бы предпочел, чтобы я мог создать такой метод регистрации, только передав объект PreparedStatement в качестве параметра.

Например, я создал PreparedStatement и связал один параметр

PreparedStatement ps = conn.prepareStatement(
    "SELECT * FROM employees WHERE employee_id = ?");
ps.setInt(1,1);

Теперь я хотел бы получить от ps фактический оператор SQL & quot; SELECT * FROM employee WHERE employee_id = 1 & quot; что я мог бы положить в файл журнала.

Пока я обнаружил, что я могу использовать

((oracle.jdbc.driver.OracleStatement) ps).getOriginalSql()

получить

SELECT * FROM employees WHERE employe_id = ?

Теперь мне нужен какой-то способ получить список текущих переменных связывания из ps, чтобы я мог заменить? со значениями параметров привязки.

Я пытался посмотреть в ps.getClass (). GetDeclaredFields () и ps.getClass (). GetSuperclass (). GetDeclaredFields (), но до сих пор не смог найти место, где хранятся значения параметров связывания и их типы.

Есть предложения, где их искать?

Ответы на вопрос(2)

Ваш ответ на вопрос