我使用 jOOQ 从表中查询/插入/更新数据。
有没有办法查看JOOQ执行的SQL语句?
查找您的日志配置文件(或创建一个)并将类
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
jOOQ 博客上有一篇博客文章描述了如何调试记录生成的 SQL:
https://blog.jooq.org/debug-logging-sql-with-jooq/
注意,这里的 Stack Overflow 问题也对此进行了处理:
正如其他解决方案所述,您可以使用 jOOQ 记录器来查看所有执行的 SQL。 jOOQ 记录器提供了对 jOOQ 支持的三个记录器 API 的抽象,按优先顺序排列:
如果您使用 Spring Boot,您可以在测试 application.yaml 中设置 @Maurizio Lo Bosco 描述的设置,以在控制台中查看 SQL 执行的输出:
logging:
level:
org:
jooq:
tools:
LoggerListener: debug