首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Spring项目中用Log4jdbc记录SQL查询及其参数和结果?

问如何在Spring项目中用Log4jdbc记录SQL查询及其参数和结果?
EN

Stack Overflow用户
提问于 2017-07-27 09:38:48
回答 1查看 5.3K关注 0票数 5

要查看发送给DB的SQL查询,我们通常使用showSql参数:

代码语言:javascript
复制
spring.jpa.showSql=true

它允许我们看到语句体,但不能看到它的参数:

代码语言:javascript
复制
insert into master (id, version, name) values (null, ?, ?)

特别是我们没有看到查询的结果。

是否有一种方法可以在应用程序日志中查看SQL语句、其参数和结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-27 09:42:42

JDBC测井

使用log4jdbc-spring-boot-starter,我们可以轻松地在Spring /Spring项目中记录所有JDBC语句、它们的参数和结果。

例如,当我们在应用程序中执行JPQL查询时:

代码语言:javascript
复制
select u from User u where u.name = 'john'

然后,我们在应用程序日志中看到以下SQL查询及其参数:

代码语言:javascript
复制
select ... from users users0_ where users0_.name='john'

它在表格中的结果:

代码语言:javascript
复制
|---|---------|
|id |name     |
|---|---------|
|1  |john     |
|---|---------|

要使用这个启动程序,我们必须将其依赖性添加到我们的项目中:

代码语言:javascript
复制
<dependency>
    <groupId>com.integralblue</groupId>
    <artifactId>log4jdbc-spring-boot-starter</artifactId>
    <version>1.0.2</version>
</dependency>

并将这些参数添加到application.properties中

代码语言:javascript
复制
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

此外,我们还可以添加这些log4jdbc参数以获得一行的输出:

代码语言:javascript
复制
log4jdbc.dump.sql.addsemicolon=true
log4jdbc.dump.sql.maxlinelength=0
log4jdbc.trim.sql.extrablanklines=false
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45346905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档