java - 如何查看我的 PreparedStatement 的外观?

标签 java jdbc prepared-statement

<分区>

Possible Duplicate:
How can I get the SQL of a PreparedStatement?

我制作了一个 PreparedStatement (PS) 并在其上运行一些 setString(int a,String b)。 在此之后,如何查看我的 PS 最终的样子?

最佳答案

如果我理解你,你会想要这样的东西:

    PreparedStatement pstmt = 
           connection.prepareStatement("insert into table tab(col) values(?)");
    pstmt.setString(1, "my string value");

然后你想看到一个像这样的字符串:

"insert into table(col) values('my string value')"

我没听错吗?

如果是这样,我认为你不能那样做。我认为该语句是在没有参数值的情况下预编译的,并且这些是分开保存的,因此您可以重用具有不同参数的语句。

您可以做的是检索参数元数据,如下所示:

    ParameterMetaData pmd = pstmt.getParameterMetaData();

然后调用类似的东西:

    pmd.getParameterCount();
    pmd.getParameterClassName(1);
    pmd.getParameterType(1);

关于java - 如何查看我的 PreparedStatement 的外观?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11678556/

相关文章:

java - 通过 JDBC 查询 Oracle DB 给出 null,而直接查询给出输出

java - 如何在带有 Guice 的 Spring JDBC 中使用事务

mysql - 使用 queryForObject() 方法检索计数时,JDBCTemplate 中的参数索引超出范围(1 > 参数数量,即 0)

java - Android中如何等待一个线程启动另一个线程?

java - AppCompat 相当于 "Theme.Wallpaper.NoTitleBar.Fullscreen"

java - 为什么我的缓冲图像不显示在我的 JPanel 中?

java - 只有最后一个值是从 jTable 中的数据库打印的

java - Oracle驱动在PreparedStatement中setFetchSize时出现OutOfMemoryError

php - 我的代码、mysql、PDO 准备删除语句有什么问题?

java - 类声明中的泛型