Java 如何获取PreparedStatement将在DB2中执行的完整查询?

Java 如何获取PreparedStatement将在DB2中执行的完整查询?,java,eclipse,db2,prepared-statement,Java,Eclipse,Db2,Prepared Statement,我正在处理一个动态web项目,并使用PreparedStatement对DB2数据库执行SQL查询 String myQuery = "select id from user where name = ?"; PreparedStatement stmt = connection.prepareStatement(myQuery); stmt.setString(1, test); ResultSet resultSet = statement.executeQuery(); 如何在控制台

我正在处理一个动态web项目,并使用PreparedStatement对DB2数据库执行SQL查询

String myQuery = "select id from user where name = ?";
PreparedStatement stmt  = connection.prepareStatement(myQuery);
stmt.setString(1, test);
ResultSet resultSet  = statement.executeQuery();

如何在控制台中接收将在DB2服务器上执行的完整SQL查询?

如果您熟悉Eclipse中的调试选项。您可以尝试以下方法:

  • ResultSet ResultSet=statement.executeQuery()处设置断点

  • 右键单击您的应用程序,说
    Debug As
    选择
    Java应用程序
    (或任何适用于您的应用程序,如SpringBoot应用程序等)

  • 执行问题中提到的代码的步骤

  • 如果您在Eclipse的
    Debug透视图
    中选中
    Variables选项卡
    ,您将发现像
    myQuery
    stmt
    这样的变量(根据您的代码)

  • 无论您将什么看作
    stmt
    的值,都将是您需要的完整SQL查询


  • 此外,如果您不想一直查看此变量,您可以尝试
    Java日志记录
    ,并在日志中打印完整的SQL查询。

    如果您熟悉Eclipse中的调试选项。您可以尝试以下操作:

  • ResultSet ResultSet=statement.executeQuery();

  • 右键单击您的应用程序,说
    Debug As
    选择
    Java应用程序
    (或任何适用于您的应用程序,如SpringBoot应用程序等)

  • 执行问题中提到的代码的步骤

  • 如果您在Eclipse的
    Debug透视图
    中选中
    Variables选项卡
    ,您将发现像
    myQuery
    stmt
    这样的变量(根据您的代码)

  • 无论您将什么看作
    stmt
    的值,都将是您需要的完整SQL查询


  • 另外,如果您不想一直查看此变量,可以尝试
    Java日志记录
    并在日志中打印完整的SQL查询。

    取决于驱动程序,这可能有效,也可能无效。请尝试
    stmt.toString()
    。本机不支持此功能。
    PreparedStatement
    是一个接口,不需要实现此类功能。如果java不成功,请与DBA联系,后者可以让DB2报告动态SQL和参数标记变量的值。DBA使用的机制将取决于操作系统DB2服务器随DB2版本一起运行的系统(Z/OS、i系列、Linux/Unix/Windows)。取决于驱动程序,这可能有效,也可能无效。请尝试
    stmt.toString()
    。本机不支持此功能。
    PreparedStatement
    是一个接口,不需要实现此类功能。如果java不成功,请与DBA联系,后者可以让DB2报告动态SQL和参数标记变量的值。DBA使用的机制将取决于操作系统DB2服务器在其上运行的系统(Z/OS、i系列、Linux/Unix/Windows)以及DB2版本。感谢rdj7提供的解决方案,我尝试了上述步骤,现在可以看到预期的结果。太棒了@chimbu!!感谢rdj7提供的解决方案,我尝试了上述步骤,现在可以看到预期的结果。太棒了@chimbu!!