可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

美化SQL打印

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

您知道可以使用我们的转换器在 https://jooq.org.cn/translate 上美化打印任意 SQL 吗?

正如前一章关于 SQL 渲染 中提到的,org.jooq.RenderContext 中有一些元素用于格式化/美化打印渲染的 SQL。 为了获得美化打印的 SQL,只需使用以下自定义设置

// Create a DSLContext that will render "formatted" SQL
DSLContext pretty = DSL.using(dialect, new Settings().withRenderFormatted(true));

然后,使用上面的 DSLContext 来渲染美化打印的 SQL

select
  "TEST"."AUTHOR"."LAST_NAME",
  count(*) "c"
from "TEST"."BOOK"
  join "TEST"."AUTHOR"
  on "TEST"."BOOK"."AUTHOR_ID" = "TEST"."AUTHOR"."ID"
where "TEST"."BOOK"."TITLE" <> '1984'
group by "TEST"."AUTHOR"."LAST_NAME"
having count(*) = 2
String sql = pretty.select(
                       AUTHOR.LAST_NAME, count().as("c"))
                   .from(BOOK)
                   .join(AUTHOR)
                   .on(BOOK.AUTHOR_ID.eq(AUTHOR.ID))
                   .where(BOOK.TITLE.ne("1984"))
                   .groupBy(AUTHOR.LAST_NAME)
                   .having(count().eq(2))
                   .getSQL();

关于 ExecuteListeners 的章节展示了一个例子,说明如何使用这种美化打印将可读的 SQL 记录到 stdout。

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo