Java 如何获取PreparedStatement将在DB2中执行的完整查询?
我正在处理一个动态web项目,并使用PreparedStatement对DB2数据库执行SQL查询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(); 如何在控制台
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应用程序等)Debug透视图中选中Variables选项卡
,您将发现像myQuery
,stmt
这样的变量(根据您的代码)
stmt
的值,都将是您需要的完整SQL查询此外,如果您不想一直查看此变量,您可以尝试
Java日志记录
,并在日志中打印完整的SQL查询。如果您熟悉Eclipse中的调试选项。您可以尝试以下操作:
ResultSet ResultSet=statement.executeQuery();
Debug As
选择Java应用程序
(或任何适用于您的应用程序,如SpringBoot应用程序等)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!!