我想在使用Oracle JDBC时实现使用实际绑定参数记录所有已执行的语句。而且我更喜欢我可以创建只传递PreparedStatement对象作为参数的日志记录方法。如何从Oracle JDBC PreparedStatement对象中获取绑定参数的值
例如我已经创建了PreparedStatement和已绑定一个参数
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM employees WHERE employee_id = ?");
ps.setInt(1,1);
现在我想可以从PS得到实际的SQL语句“SELECT * FROM雇员WHERE employe_id = 1”,我可以放入日志文件。
到目前为止,我发现我可以使用
((oracle.jdbc.driver.OracleStatement) ps).getOriginalSql()
得到
SELECT * FROM employees WHERE employe_id = ?
现在我需要一些方法来摆脱目前的PS绑定变量的列表,以便我能更换?带有绑定参数值。我试图查看ps.getClass()。getDeclaredFields()和ps.getClass()。getSuperclass()。getDeclaredFields(),但到目前为止找不到绑定参数值及其类型存储的位置。
任何建议在哪里寻找他们?