【问题标题】:How do I see what my PreparedStatement looks like? [duplicate]如何查看 PreparedStatement 的外观? [复制]
【发布时间】:2012-07-25 14:04:03
【问题描述】:

可能重复:
How can I get the SQL of a PreparedStatement?

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

【问题讨论】:

标签: java jdbc prepared-statement


【解决方案1】:

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

    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);

【讨论】:

  • 是的,我好像做不到这个。在 ParameterMetaData 和 ParameterMetaData 的 JavaDocs 中,我没有看到任何可以给我想要的方法。
  • 您使用的是什么数据库?甲骨文,德比,MySql,...?试试 Betoverse 提供的答案,尝试通过 System.out.println(pstmt); 打印声明
猜你喜欢
  • 2013-03-11
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
相关资源
最近更新 更多