Art*_*tem 55 sql jdbc spring-jdbc
我正在学习JdbcTemplate和NamedParameterJdbcTemplate的奇迹.我喜欢我所看到的,但有没有简单的方法来查看它最终执行的底层SQL?我希望看到这个用于调试目的(例如,在外部工具中调试生成的SQL).
Bal*_*usC 48
在Spring文档说,他们在DEBUG级别记录:
此类发出的所有SQL都记录在与模板实例的完全限定类名对应的类别下的DEBUG级别(通常为JdbcTemplate,但如果使用JdbcTemplate类的自定义子类,则可能会有所不同).
在XML术语中,您需要将记录器配置为:
<category name="org.springframework.jdbc.core.JdbcTemplate">
<priority value="debug" />
</category>
Run Code Online (Sandbox Code Playgroud)
然而,这个主题在一个月前就在这里进行了讨论,并且它似乎不像在Hibernate中那样容易上班和/或它没有返回预期的信息:Spring JDBC没有使用log4j记录SQL每个下面的主题建议使用P6Spy根据这篇文章,它也可以集成在Spring中.
Kro*_*oky 34
这适用于org.springframework.jdbc-3.0.6.RELEASE.jar.我在Spring文档的任何地方都找不到这个(也许我只是懒惰)但是我发现(试验和错误)TRACE级别做了魔术.
我正在使用log4j-1.2.15以及slf4j(1.6.4)和属性文件来配置log4j:
log4j.logger.org.springframework.jdbc.core = TRACE
Run Code Online (Sandbox Code Playgroud)
这将显示SQL语句和绑定参数,如下所示:
Executing prepared SQL statement [select HEADLINE_TEXT, NEWS_DATE_TIME from MY_TABLE where PRODUCT_KEY = ? and NEWS_DATE_TIME between ? and ? order by NEWS_DATE_TIME]
Setting SQL statement parameter value: column index 1, parameter value [aaa], value class [java.lang.String], SQL type unknown
Setting SQL statement parameter value: column index 2, parameter value [Thu Oct 11 08:00:00 CEST 2012], value class [java.util.Date], SQL type unknown
Setting SQL statement parameter value: column index 3, parameter value [Thu Oct 11 08:00:10 CEST 2012], value class [java.util.Date], SQL type unknown
Run Code Online (Sandbox Code Playgroud)
不确定SQL类型未知但我想我们可以在这里忽略它
对于一个SQL(即如果你对绑定的参数值不感兴趣)DEBUG
就足够了.
Vla*_*liy 19
我将此行用于 Spring Boot 应用程序:
logging.level.org.springframework.jdbc.core = TRACE
Run Code Online (Sandbox Code Playgroud)
这种方法非常普遍,我通常将它用于我的应用程序中的任何其他类。
参数值似乎打印在TRACE级别.这对我有用:
log4j.logger.org.springframework.jdbc.core.JdbcTem plate=DEBUG, file
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=TRACE, file
Run Code Online (Sandbox Code Playgroud)
控制台输出:
02:40:56,519 TRACE http-bio-8080-exec-13 core.StatementCreatorUtils:206 - Setting SQL statement parameter value: column index 1, parameter value [Tue May 31 14:00:00 CEST 2005], value class [java.util.Date], SQL type unknown
02:40:56,528 TRACE http-bio-8080-exec-13 core.StatementCreatorUtils:206 - Setting SQL statement parameter value: column index 2, parameter value [61], value class [java.lang.Integer], SQL type unknown
02:40:56,528 TRACE http-bio-8080-exec-13 core.StatementCreatorUtils:206 - Setting SQL statement parameter value: column index 3, parameter value [80], value class [java.lang.Integer], SQL type unknown
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
83542 次 |
最近记录: |