如何使用 Spring 数据 JDBC 记录 SQL 语句和参数

How to log SQL statements and parameters with Spring Data JDBC

如果您想查看 SQL 语句 Spring 数据 JDBC 正在执行什么,您会怎么做? 由于它使用绑定变量,我也想在日志中查看它们的值。

Spring 数据JDBC 使用一个JdbcTemplate 来执行所有SQL 语句。 So you really need to configure logging for that.

语句本身由模板本身以 DEBUG 级别记录。 要查看这些,您必须将 org.springframework.jdbc.core.JdbcTemplate 的日志级别设置为 DEBUG

绑定变量的参数由 org.springframework.jdbc.core.StatementCreatorUtilsTRACE 级别记录。

如何配置这些取决于您的项目设置。 您可以使用 Log4J、Logback 或您正在使用的任何日志记录实现的配置选项。 或者,如果您碰巧使用 Spring 引导 application.properties 中的以下行应该可以解决问题。

logging.level.org.springframework.jdbc.core.StatementCreatorUtils=TRACE
logging.level.org.springframework.jdbc.core.JdbcTemplate=DEBUG

或者干脆

logging.level.org.springframework.jdbc.core = TRACE

如果您不介意可能获得一些额外的输出。