Cómo obtener valores de parámetros de enlace del objeto Oracle JDBC PreparedStatement
Quiero implementar el registro de todas las declaraciones ejecutadas con parámetros de enlace reales cuando se utiliza Oracle JDBC. Y preferiría que pudiera crear dicho método de registro solo pasando el objeto PreparedStatement como parámetro.
Por ejemplo, he creado PreparedStatement y he enlazado un parámetro
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM employees WHERE employee_id = ?");
ps.setInt(1,1);
Ahora me gustaría poder obtener de ps la declaración SQL real "SELECCIONAR * DE los empleados DONDE use_id = 1" que podría poner en el archivo de registro.
Hasta ahora he encontrado que puedo usar
((oracle.jdbc.driver.OracleStatement) ps).getOriginalSql()
Llegar
SELECT * FROM employees WHERE employe_id = ?
¿Ahora necesito alguna forma de obtener la lista de variables de enlace actuales de ps para poder reemplazar? con valores de parámetro de enlace.
Intenté buscar en ps.getClass (). GetDeclaredFields () y ps.getClass (). GetSuperclass (). GetDeclaredFields () pero hasta ahora no he podido encontrar el lugar donde se almacenan los valores de los parámetros de enlace y sus tipos.
¿Alguna sugerencia donde buscarlos?