【问题标题】:How to see PreparedStatement's SQL string? [duplicate]如何查看 PreparedStatement SQL 字符串? [复制]
【发布时间】:2013-03-11 06:50:06
【问题描述】:

当我们创建 PreparedStatement 时,我们使用 '?'然后用设置的参数替换字符。

这些参数设置好后如何查看最终的SQL字符串?

【问题讨论】:

标签: java jdbc prepared-statement


【解决方案1】:

最简单的方法(适用于任何 JDBC 驱动程序)是使用log4jdbc。它是一个封装驱动程序的代理,通过组合 SQL 及其参数创建可读的 SQL 字符串并记录它,然后将 SQL 和参数传递给底层驱动程序。

【讨论】:

    【解决方案2】:

    没有最终的 SQL 字符串,带有占位符的版本是实际发送到服务器的版本。当您对准备好的语句执行查询时,数据完全独立于它发送。

    您可以使用占位符记录字符串,然后分别记录每个数据集。

    如果你想要的话,你的代码可以在日志中将它们组合成一个实际的 SQL 字符串:

    String query = "SELECT a FROM b WHERE c = ?";
    
    ...
    
    pstmt.setString(1, "asd");
    logSQL( query, "asd");
    

    logSQL 然后将实际记录"SELECT a FROM b WHERE c = 'asd'"Could be that someone has actually implemented this before...

    【讨论】:

      猜你喜欢
      • 2012-07-25
      • 2016-02-07
      • 1970-01-01
      • 2017-07-03
      • 2019-12-24
      • 2018-05-15
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      相关资源
      最近更新 更多