I would like to make a method which replaces the tipical preparedstatement clause (?) from a sql String with it's value.
This should be the method sign
public String preparedReplace (String argSql, PreparedStatement pstm)
I want to retrieve parameter values from the preparedStatement object but I don´t know how.
Is There any way of retrieving these parameter values?
The API (ParameterMetaData) doesn´t show how to do that.
Thanks in advance.
As far as I know, there isn't a way to do this using the API. There are several frameworks that do similar things, such as p6spy or log4jdbc.
I've actually implemented a wrapper around PreparedStatement, which intercepts and stores the values of parameters being passed and can output the SQL query text with embedded literals. I haven't implemented it fully though, only those parts that are needed by my project. It doesn't support obtaining BLOB and CLOB parameters back, for example. Implementing it for the standard types isn't that hard, the hard part is to ensure it is used at all appropriate places.