Spring NamedParameterJdbcTemplate:获取带有参数替换的 SQL 查询结果

Asp*_*ect 5 sql spring-jdbc jdbctemplate spring-data

我需要获取从 发送到数据库的最终 SQL 查询NamedParameterJdbcTemplate

例如:

SELECT * FROM tbl WHERE name = :name;
Run Code Online (Sandbox Code Playgroud)

我需要这样的东西:

SELECT * FROM tbl WHERE name ='mark';
Run Code Online (Sandbox Code Playgroud)

多谢。

Jen*_*der 3

快速浏览一下will的源代码NamedParameterJdbcTemplate就会发现,所有的查询都是通过getParsedSql()method和NamedParameterUtilsfor解析的。

SELECT * FROM tbl WHERE name = :name;
Run Code Online (Sandbox Code Playgroud)

可能会被翻译成类似的东西

SELECT * FROM tbl WHERE name = ?;
Run Code Online (Sandbox Code Playgroud)

并且该参数将作为单独的对象提供,因为这就是 JDBC 的工作原理。

如果您只想检查语句,可以添加一些断点并查看。如果您想实际获取值,您可以更改代码,使其可通过反射或实际使用您自己的NamedparameterJdbcTemplate.

请注意,您可能不会看到您期望的内容。