如何阅读本手册
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
-- A SQL code block SELECT 1 FROM DUAL
// A Java code block for (int i = 0; i < 10; i++);
<!-- An XML code block --> <hello what="world"></hello>
# A config file code block org.jooq.property=value
这些对于提供代码示例很有用。通常,对于 jOOQ,将 SQL 代码与其对应的 Java/jOOQ 代码进行比较甚至更有用。 完成此操作后,代码块会并排对齐,SQL 通常在左侧,等效的 Java 中的 jOOQ DSL 查询通常在右侧
-- In SQL: SELECT 1 FROM DUAL
// Using jOOQ: create.selectOne().fetch()
代码块内容
代码块的内容也遵循约定。 如果在任何给定的代码块旁边没有提及其他内容,则可以假定以下内容
-- SQL assumptions ------------------ -- If nothing else is specified, assume that the Oracle syntax is used SELECT 1 FROM DUAL
// Java assumptions // ---------------- // Whenever you see "standalone functions", assume they were static imported from org.jooq.impl.DSL // "DSL" is the entry point of the static query DSL exists(); max(); min(); val(); inline(); // correspond to DSL.exists(); DSL.max(); DSL.min(); etc... // Whenever you see BOOK/Book, AUTHOR/Author and similar entities, assume they were (static) imported from the generated schema BOOK.TITLE, AUTHOR.LAST_NAME // com.example.generated.Tables.BOOK.TITLE, com.example.generated.Tables.AUTHOR.LAST_NAME FK_BOOK_AUTHOR // com.example.generated.Keys.FK_BOOK_AUTHOR // Whenever you see "create" being used in Java code, assume that this is an instance of org.jooq.DSLContext. // The reason why it is called "create" is the fact, that a jOOQ QueryPart is being created from the DSL object. // "create" is thus the entry point of the non-static query DSL DSLContext create = DSL.using(connection, SQLDialect.ORACLE);
当然,您的命名可能有所不同。 例如,您可以将“create”实例命名为“db”。
执行
当您编写 PL/SQL、T-SQL 或其他过程式 SQL 语言时,SQL 语句始终在分号处立即执行。 这在 jOOQ 中并非如此,因为作为内部 DSL,jOOQ 永远无法确定您的语句是否完成,除非您调用 fetch()
或 execute()
。 本手册尝试尽可能彻底地应用 fetch()
和 execute()
。 如果没有,则表示隐含。
SELECT 1 FROM DUAL UPDATE t SET v = 1
create.selectOne().fetch(); create.update(T).set(T.V, 1).execute();
度数(元数)
jOOQ 记录(和许多其他 API 元素)的度数 N 介于 1 和 22 之间。API 元素的可变度数表示为 [N],例如 Row[N] 或 Record[N]。 “degree”一词优于元数,因为“degree”是 SQL 标准中使用的术语,而“arity”更常用于数学和关系理论。
设置
jOOQ 允许使用 org.jooq.conf.Settings
覆盖运行时行为。 如果未指定任何内容,则假定为默认运行时设置。
示例数据库
jOOQ 查询示例针对示例数据库运行。 请参阅本手册关于 本手册中使用的示例数据库 的部分,以了解有关示例数据库的更多信息。
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的声音!