jdbc java CallableStatement打印过程中的所有参数
CallableStatement stmt = getSession().connection().prepareCall(
"{call CRM_DAO.Search_Customers(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
setString(1, filter.getFirstname(), stmt);
....
stmt.execute();
我是否可以在SQL中看到我可以执行此过程的所有输入参数,而不是手动检查所有零件参数
我想找回一些东西,比如:
call CRM_DAO.Search_Customers(1, 3, 'test',..
# 1 楼答案
您必须更好地定义“以某种方式查看所有输入参数”的含义。你最好的选择是在
Statement
对象上使用getXXX
方法,并查看每个参数的确切值-但是,从你的问题措辞来看,这似乎正是你不想做的编辑根据OP的评论,目的是准确查看执行的语句
在JDBC中没有标准的方法来实现这一点。如果您打算将这些“扩展”语句打印到日志中,那么您将不得不求助于JDBC驱动程序的提供商或JEE容器可能提供的日志记录/跟踪方法。如果您打算在程序中以
String
的形式接收这些语句,那么也许您应该按照@jgitter的建议,下载log4jdbc
的源代码,看看它们是如何打印语句的(如果它们只是在Statement
对象上使用各种getXXX
方法,我不会感到惊讶)# 2 楼答案
为此,我使用log4jdbc。非常好用,而且很容易配置。如果您将它放入并用作jdbc驱动程序,它将自动包装大多数兼容jdbc的驱动程序
https://code.google.com/p/log4jdbc/
它可能有点健谈,但日志级别是可配置的,可以分为子类别,以帮助缩小您要查找的内容