5

可能重复:
如何获取 PreparedStatement 的 SQL?

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

4

1 回答 1

4

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

    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);
于 2012-07-26T22:01:02.723 回答