jOOQ:select 原始值
jOOQ: select primitive values
如果我的查询结果是包含原始值的单个列,有没有办法用 jooq 获取它们,避免原始装箱?
例如,从 table 中的每本书中获取页数作为 int[]。
int[] pageCounts = dsl.select(BOOK.PAGE_COUNT)
.from(BOOK)
.fetch();
jOOQ 大量使用泛型,这意味着在 jOOQ 内部的某个时刻,装箱是不可避免的,即使 jOOQ 有可能将结果作为 int[]
.
您将不得不 运行 直接使用 JDBC 查询(您仍然可以使用 jOOQ 构建它)来执行您想要的操作。例如
// Use some third party primitive int buffer
var buffer = new IntArrayList();
try (
Cursor<?> cursor = dsl.select(BOOK.PAGE_COUNT).from(BOOK).fetchLazy();
ResultSet rs = cursor.resultSet();
) {
while (rs.next())
buffer.add(rs.getInt(1));
}
如果我的查询结果是包含原始值的单个列,有没有办法用 jooq 获取它们,避免原始装箱?
例如,从 table 中的每本书中获取页数作为 int[]。
int[] pageCounts = dsl.select(BOOK.PAGE_COUNT)
.from(BOOK)
.fetch();
jOOQ 大量使用泛型,这意味着在 jOOQ 内部的某个时刻,装箱是不可避免的,即使 jOOQ 有可能将结果作为 int[]
.
您将不得不 运行 直接使用 JDBC 查询(您仍然可以使用 jOOQ 构建它)来执行您想要的操作。例如
// Use some third party primitive int buffer
var buffer = new IntArrayList();
try (
Cursor<?> cursor = dsl.select(BOOK.PAGE_COUNT).from(BOOK).fetchLazy();
ResultSet rs = cursor.resultSet();
) {
while (rs.next())
buffer.add(rs.getInt(1));
}