ResultQuery 作为 Iterable
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
org.jooq.ResultQuery 类型扩展了 java.lang.Iterable,因此继承了 JDK 的 Iterable.forEach() 方法,并且可以作为 foreach 循环的来源
// External iteration, fetching records eagerly
for (var r : create.select(BOOK.TITLE).from(BOOK))
System.out.println(r.get(BOOK.TITLE));
// Internal iteration, fetching records lazily
create.select(BOOK.TITLE).from(BOOK).forEach(r -> {
System.out.println(r.get(BOOK.TITLE));
});
请注意,与使用org.jooq.CursorAPI 进行延迟获取不同,外部迭代样式将急切地获取整个中间org.jooq.Result到内存中,因为 jOOQ 无法控制java.util.Iterator的生命周期,并且 JDK 不知道java.lang.AutoCloseable迭代器。
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!