历史模型API
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
从历史上看,jOOQ 最初是一个像其他库一样的面向对象的 SQL 构建器库。这意味着所有查询及其语法组件都被建模为所谓的 QueryParts,它将 SQL 渲染和 变量绑定委托给子组件。API 的这一部分将被称为模型 API(或非 DSL API),jOOQ 仍然维护并内部使用它来进行增量查询构建。此处给出了增量查询构建的示例
DSLContext create = DSL.using(connection, dialect); SelectQuery<Record> query = create.selectQuery(); query.addFrom(AUTHOR); // Join books only under certain circumstances if (join) { query.addJoin(BOOK, BOOK.AUTHOR_ID.eq(AUTHOR.ID)); } Result<?> result = query.fetch();
此查询等效于之前使用 DSL 语法显示的查询。 实际上,在内部,DSL API 精确地构造了这个 SelectQuery 对象。 请注意,您可以始终访问 SelectQuery 对象以在 DSL 和模型 API 之间切换
DSLContext create = DSL.using(connection, dialect); SelectFinalStep<?> select = create.select().from(AUTHOR); // Add the JOIN clause on the internal QueryObject representation SelectQuery<?> query = select.getQuery(); query.addJoin(BOOK, BOOK.AUTHOR_ID.eq(AUTHOR.ID));
此 API 是完全可变的,并且由于历史原因,早期 DSL API 元素继承了这种可变性。
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的反馈!