spring NamedParameterJdbcTemplate get(final)sql查询,参数被替换

时间:2017-05-24 13:53:16

标签: sql spring-data spring-jdbc jdbctemplate

我需要从NamedParameterJdbcTemplate获取发送到数据库的最终sql查询。例如:

Select * from tbl where name = :name

我需要这样的东西:

Select * from tbl where name ='mark'

非常感谢

1 个答案:

答案 0 :(得分:2)

快速查看at the source code https://github.com/spring-projects/spring-framework/blob/master/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.java所有查询都通过'getParsedSql' methodNamedParameterUtils进行解析。

Select * from tbl where name = :name

可能会被翻译成类似

的内容
Select * from tbl where name = ?

参数将作为单独的对象提供,因为这就是JDBC的工作方式。

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

请注意,您可能无法看到您的期望。