2012-02-25 222 views
3

我在我的Java程序中使用了PreparedStatement。我需要调试SQL查询,因为它不能正常工作。如何在使用PreparedStatement(JDBC)时打印使用的SQL查询

是否有去打印用的PreparedStatement插入

例如值所使用的SQL语句:

SELECT * FROM表其中a =?

和比我设定的?

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

SELECT * FROM表,其中a = 1

+2

http://stackoverflow.com/q/2683214/839527上一个问题将帮助你。 – JProgrammer 2012-02-25 16:11:57

+1

有一个很好的讨论这个问题[这里](http://stackoverflow.com/questions/2382532/how-can-i-get-the-sql-of-a-preparedstatement) – mut1na 2012-02-25 16:20:54

回答

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。不能更改数据库而不更改代码。

+0

谢谢...没关系我只打算将它用于调试目的。 – user836026 2012-02-25 16:13:19