一尘不染

如何在jOOQ中编写计数查询

java

我现在将Pure SQL转换为jOOQ

("SELECT Count(*) Count From Table ");

我必须在jOOQ中编写此代码,我们该如何编写?

selectQueryRecord.addSelect(Here Count Function );
selectQueryRecord.addFrom(Table);

阅读 511

收藏
2020-12-03

共1个答案

一尘不染

实现您所请求内容的最直接的方法是使用selectCount()

int count = 
DSL.using(configuration)
   .selectCount()
   .from(Table)
   .fetchOne(0, int.class);

另外,您可以显式表达该count()功能:

int count = 
DSL.using(configuration)
   .select(DSL.count())
   .from(Table)
   .fetchOne(0, int.class);

还有另一种方法来获取count(*)任意select表达式,这可以帮助您避免在上述fetchOne()方法中指定结果列索引和类型。它使用fetchCount()

int count =
DSL.using(configuration)
   .fetchCount(DSL.selectFrom(Table));

但是请注意,这会呈现如下嵌套选择:

SELECT COUNT(*) FROM (SELECT a, b, ... FROM Table)
2020-12-03