Tengo un método Java general con la siguiente firma de método:
private static ResultSet runSQLResultSet(String sql, Object... queryParams)
Abre una conexión, construye PreparedStatementusando la instrucción sql y los parámetros en la queryParamsmatriz de longitud variable, la ejecuta, almacena ResultSeten caché el (en a CachedRowSetImpl), cierra la conexión y devuelve el conjunto de resultados en caché.
Tengo manejo de excepciones en el método que registra errores. Registro la instrucción sql como parte del registro, ya que es muy útil para la depuración. Mi problema es que el registro de la variable String sqlregistra la declaración de la plantilla con? 'S en lugar de valores reales. Quiero registrar la declaración real que se ejecutó (o intentó ejecutar).
Entonces ... ¿Hay alguna forma de obtener la declaración SQL real que ejecutará un PreparedStatement? ( Sin construirlo yo mismo. Si no puedo encontrar una manera de acceder al PreparedStatement'sSQL, probablemente terminaré construyéndolo yo mismo catch).