使用PreparedStatement(JDBC)时如何打印使用过的SQL查询

时间:2012-02-25 16:06:47

标签: java mysql jdbc

我在Java程序中使用了PreparedStatement。我需要调试SQL查询,因为它不能正常工作。

是否可以使用插入的值打印已使用的SQL语句

例如在PreparedStatement中:

从表中选择*,其中a =?

而不是我设置?

我可以打印使用过的SQL,例如:

从表中选择*,其中a = 1

1 个答案:

答案 0 :(得分:3)

使用java.sql.PreparedStatement接口本身无法完成;它取决于您的数据库供应商的实施。

但你很幸运; MySQL驱动程序允许您使用其toString实现来执行此操作:

http://www.avajava.com/tutorials/lessons/how-do-i-display-a-prepared-statement-with-bind-variables-using-mysql.html

您需要注意,使用此特定于供应商的功能会将您的代码绑定到MySQL。您无法在不更改代码的情况下更改数据库。