要查看发送给DB的SQL查询,我们通常使用showSql
参数:
spring.jpa.showSql=true
它允许我们查看语句体,但不能查看其参数:
insert into master (id, version, name) values (null, ?, ?)
特别是我们没有看到查询结果。
有没有办法在应用程序日志中查看SQL语句,其参数和结果?
答案 0 :(得分:3)
使用 log4jdbc-spring-boot-starter ,我们可以在Spring Boot / Spring Data JPA项目中轻松记录所有JDBC语句,其参数和结果。
例如,当我们在我们的应用程序中执行一些JPQL查询时:
while(system("ls `git rev-parse --git-dir` | grep rebase") eq 'rebase-apply/'){
my $mergeToolMsg=system("git mergetool");
chomp $mergeToolMsg;
if($mergeToolMsg != 0){
//This doesnt hit even
last;
}else{
system("git rebase --continue");
}
}
然后我们在应用程序日志中看到以下SQL查询及其参数:
select u from User u where u.name = 'john'
其结果以表格形式显示:
select ... from users users0_ where users0_.name='john'
要使用此启动器,我们必须将其依赖项添加到我们的项目中:
|---|---------|
|id |name |
|---|---------|
|1 |john |
|---|---------|
并将这些参数添加到<dependency>
<groupId>com.integralblue</groupId>
<artifactId>log4jdbc-spring-boot-starter</artifactId>
<version>1.0.2</version>
</dependency>
:
application.properties
此外,我们可以添加这些 log4jdbc 参数以获得一行输出:
logging.level.jdbc.resultsettable=info
logging.level.jdbc.sqltiming=info
logging.level.jdbc.sqlonly=fatal
logging.level.jdbc.audit=fatal
logging.level.jdbc.resultset=fatal
logging.level.jdbc.connection=fatal