【发布时间】:2012-01-22 09:04:50
【问题描述】:
在不更改我的代码中的任何内容的情况下,有没有办法告诉 JDBC 打印由 Statement#executeUpdate(...) 和 Statement#execute(...) 执行的任何查询?
这对于调试目的非常有用。
【问题讨论】:
在不更改我的代码中的任何内容的情况下,有没有办法告诉 JDBC 打印由 Statement#executeUpdate(...) 和 Statement#execute(...) 执行的任何查询?
这对于调试目的非常有用。
【问题讨论】:
是的。在实际驱动程序周围使用包装器,例如P6Spy。可能还有其他同类工具。
编辑:P6Spy 似乎已经死了。但我也找到了JDBCGrabber。
【讨论】:
我已经尝试了您的所有建议,但最后我找到了 log4jdbc 并使用了它
这在很大程度上取决于您的 jdbc 驱动程序。大多数驱动程序允许启用某种跟踪。检查您的驱动程序文档。
例如
甲骨文:http://docs.oracle.com/cd/B28359_01/java.111/b31224/diagnose.htm
DB2:http://www.ibm.com/developerworks/data/library/techarticle/dm-0506fechner/
【讨论】: