最近项目换用SpringMVC + Spring JdbcTemplate,没有用orm,发现执行的sql无法打印出来,查了下解决办法。
在log4j.properties增加如下配置:
log4j.logger.org.springframework.jdbc.core.JdbcTemplate=debug
至于为什么这样配置就能打印出sql了,参见源码即可明了:
public int update(String sql) throws DataAccessException {
Assert.notNull(sql, "SQL must not be null");
if (this.logger.isDebugEnabled()) {
this.logger.debug("Executing SQL update [" + sql + "]");
}
注意:这个日志级别只能配置为debug。一如ibatis中想打印sql时也只能配置debug级别。ibatis对应配置如下:
log4j.logger.java.sql.Connection = debug
log4j.logger.java.sql.PreparedStatement = debug
log4j.logger.java.sql.ResultSet = debug
PS:顺便吐槽下,Spring JdbcTemplate真心不习惯。