有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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',..

共 (2) 个答案

  1. # 1 楼答案

    您必须更好地定义“以某种方式查看所有输入参数”的含义。你最好的选择是在Statement对象上使用getXXX方法,并查看每个参数的确切值-但是,从你的问题措辞来看,这似乎正是你想做的

    编辑根据OP的评论,目的是准确查看执行的语句

    在JDBC中没有标准的方法来实现这一点。如果您打算将这些“扩展”语句打印到日志中,那么您将不得不求助于JDBC驱动程序的提供商或JEE容器可能提供的日志记录/跟踪方法。如果您打算在程序中以String的形式接收这些语句,那么也许您应该按照@jgitter的建议,下载log4jdbc的源代码,看看它们是如何打印语句的(如果它们只是在Statement对象上使用各种getXXX方法,我不会感到惊讶)

  2. # 2 楼答案

    为此,我使用log4jdbc。非常好用,而且很容易配置。如果您将它放入并用作jdbc驱动程序,它将自动包装大多数兼容jdbc的驱动程序

    https://code.google.com/p/log4jdbc/

    它可能有点健谈,但日志级别是可配置的,可以分为子类别,以帮助缩小您要查找的内容