如何查看jOOQ执行的SQL语句?

问题描述 投票:0回答:3

我使用 jOOQ 从表中查询/插入/更新数据。

有没有办法查看JOOQ执行的SQL语句?

java sql jooq
3个回答
33
投票

查找您的日志配置文件(或创建一个)并将类

org.jooq.tools.LoggerListener
的日志级别设置为
debug
trace
,例如进入
log4j.properties

在 Spring 中,您可以通过这种方式将日志级别 DEBUG 设置到 application.properties 中

logging.level.org.jooq.tools.LoggerListener=DEBUG

对于以下查询

create.select(BOOK.ID, BOOK.TITLE).from(BOOK).orderBy(BOOK.ID).limit(1, 2).fetch();

你应该得到一个类似的日志

Executing query          : select "BOOK"."ID", "BOOK"."TITLE" from "BOOK" order by "BOOK"."ID" asc limit ? offset ?
-> with bind values      : select "BOOK"."ID", "BOOK"."TITLE" from "BOOK" order by "BOOK"."ID" asc limit 2 offset 1

7
投票

jOOQ 博客上有一篇博客文章描述了如何调试记录生成的 SQL:

https://blog.jooq.org/debug-logging-sql-with-jooq/

注意,这里的 Stack Overflow 问题也对此进行了处理:

我们如何分析 JOOQ 语句的速度


0
投票

正如其他解决方案所述,您可以使用 jOOQ 记录器来查看所有执行的 SQL。 jOOQ 记录器提供了对 jOOQ 支持的三个记录器 API 的抽象,按优先顺序排列:

  1. slf4j
  2. log4j
  3. jav.util.logging

如果您使用 Spring Boot,您可以在测试 application.yaml 中设置 @Maurizio Lo Bosco 描述的设置,以在控制台中查看 SQL 执行的输出:

  logging:
     level:
       org:
         jooq:
           tools:
             LoggerListener: debug
© www.soinside.com 2019 - 2024. All rights reserved.