在我的代码我正在使用java.sql.PreparedStatement.
然后我执行该setString()方法来填充预准备语句的通配符.
在executeQuery()调用方法并执行查询之前,有没有办法检索(并打印出)最终查询?我只想将其用于调试目的.
我有一个通用的Java方法,具有以下方法签名:
private static ResultSet runSQLResultSet(String sql, Object... queryParams)
Run Code Online (Sandbox Code Playgroud)
它打开一个连接,PreparedStatement使用sql语句和queryParams变量长度数组中的参数构建一个,运行它,缓存ResultSet(在a中CachedRowSetImpl),关闭连接,并返回缓存的结果集.
我在记录错误的方法中有异常处理.我将sql语句记录为日志的一部分,因为它对调试很有帮助.我的问题是记录String变量会sql使用?而不是实际值记录模板语句.我想记录已执行(或尝试执行)的实际语句.
那么......有没有办法获得将由a运行的实际SQL语句PreparedStatement?(没有自己构建它.如果我找不到访问PreparedStatement'sSQL的方法,我可能最终会自己构建它catch.)