猿问

从java.sql.PreparedStatement 获取查询

从java.sql.PreparedStatement 获取查询

在我的代码我正在使用java.sql.PreparedStatement

然后我执行该setString()方法来填充预准备语句的通配符。

executeQuery()调用方法并执行查询之前,有没有办法检索(并打印出)最终查询?我只想将其用于调试目的。


largeQ
浏览 743回答 3
3回答

PIPIONE

这在JDBC API合同中没有任何定义,但如果你很幸运,有问题的JDBC驱动程序可以通过调用返回完整的SQL PreparedStatement#toString()。即System.out.println(preparedStatement);根据我的经验,这样做的至少是PostgreSQL 8.x和MySQL 5.x JDBC驱动程序。对于JDBC驱动程序不支持它的情况,最好的办法是使用一个语句包装器来记录所有setXxx()方法,最后toString()根据记录的信息填充一个SQL字符串。例如Log4jdbc或P6Spy。
随时随地看视频慕课网APP

相关分类

Java
我要回答