正题,很多人使用Springboot整合JPA后,都会在配置文件中设置配置项 show-sql:

 

Springboot JPA日志打印SQL语句和传入的参数 初阶篇_参数打印

 但是这仅仅也就打印了每次执行的SQL语句,如:

Springboot JPA日志打印SQL语句和传入的参数 初阶篇_springboot_02

显然,没有传入的参数。

 

在配置文件中加入日志配置项:

logging:
level:
org.springframework.security:
- debug
- info
org.springframework.web: error
org.hibernate.SQL: debug
org.hibernate.engine.QueryParameters: debug
org.hibernate.engine.query.HQLQueryPlan: debug
org.hibernate.type.descriptor.sql.BasicBinder: trace

 然后是测试的查询方法:

@Query(value="select * from user where name=(:name)",nativeQuery = true)
User getUserByName(@Param("name") String name);

调用接口,传入name:

Springboot JPA日志打印SQL语句和传入的参数 初阶篇_jpa_03

看看控制台日志的打印:

Springboot JPA日志打印SQL语句和传入的参数 初阶篇_SQL打印_04

可以看到SQL语句以及这语句的传入绑定参数都在日志中有打印了(这时候其实show-sql可以关闭掉) 



等等,其实还没完,这样就满足了吗?
真正我们想要的就仅仅这样吗?
想要的是这种效果:

Springboot JPA日志打印SQL语句和传入的参数 初阶篇_jpa_05