Я хочу реализовать ведение журнала всех выполненных операторов с фактическими параметрами связывания при использовании Oracle JDBC. И я бы предпочел, чтобы я мог создать такой метод ведения журнала, только передав в качестве параметра объект PreparedStatement.
Например, я создал PreparedStatement и связал один параметр
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM employees WHERE employee_id = ?");
ps.setInt(1,1);
Теперь я хотел бы получить от ps фактический оператор SQL "SELECT * FROM сотрудников WHERE employee_id = 1", который я мог бы поместить в файл журнала.
Пока я обнаружил, что могу использовать
((oracle.jdbc.driver.OracleStatement) ps).getOriginalSql()
чтобы получить
SELECT * FROM employees WHERE employe_id = ?
Теперь мне нужен какой-то способ получить список текущих переменных связывания из ps, чтобы я мог заменить? со значениями параметров связывания.
Я пытался посмотреть в ps.getClass (). GetDeclaredFields () и ps.getClass (). GetSuperclass (). GetDeclaredFields (), но до сих пор не смог найти место, где хранятся значения параметров связывания и их типы.
Есть предложения, где их искать?