Как получить значения параметров связывания из объекта 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 (), но до сих пор не смог найти место, где хранятся значения параметров связывания и их типы.
Есть предложения, где их искать?