像 hibernate, mybatis 都是不打印真正执行的sql的,所以借助 log4jdbc 打印sql以及统计执行时间是非常方便的。
配置log4jdbc 有很多种方法,比如通过spring的拦截器。最简单的方法就是在jdbc.url 连接参数加上log4jdbc,然后引入相应的log4jdbc包即可。
# 修改前
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8
# 修改后
spring.datasource.driver-class-name=net.sf.log4jdbc.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8
COMMENT 原连接参数:
jdbc.url=jdbc:mysql://127.0.0.1:3306/theme?characterEncoding=utf-8
COMMENT 加入log4jdbc后的连接参数:
jdbc.url=jdbc:log4jdbc:mysql://127.0.0.1:3306/theme?characterEncoding=utf-8
引入jar包
com.googlecode.log4jdbc
log4jdbc
1.2
runtime
我用logback,所以还要引入logback 和 slf4j-api包。
因为log4jdbc 默认输出很多日志,所以需要配置,可以通过新建 log4jdbc.properties 配置,也可以通过logback.xml文件里配置, 用log4j的则是通过log4j.properties 或log4j.xml配置。