最佳答案
我有一个具有以下方法签名的通用 Java 方法:
private static ResultSet runSQLResultSet(String sql, Object... queryParams)
它打开一个连接,使用 sql 语句和 queryParams
变量长度数组中的参数构建一个 PreparedStatement
,运行它,缓存 ResultSet
(在 CachedRowSetImpl
中) ,关闭连接,并返回缓存的结果集。
我在记录错误的方法中有异常处理。我将 sql 语句作为日志的一部分来记录,因为它对调试非常有帮助。我的问题是记录 String 变量 sql
记录模板语句?而不是真正的价值观。我想记录执行(或试图执行)的 真的语句。
那么... 有没有什么方法可以得到由 PreparedStatement
运行的实际 SQL 语句呢?(没有建立它自己。如果我不能找到访问 PreparedStatement's
SQL 的方法,我可能最终会在我的 catch
es 中自己构建它。)