如何在 jOOQ 中编写计数查询

新手上路,请多包涵

我现在正在将 Pure SQL 转换为 jOOQ 我有这个

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

我必须在jOOQ中写这个我们怎么写呢?

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

原文由 Subodh Joshi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 666
2 个回答

通过使用 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);

或者,如果您不喜欢映射值,可以使用它:

 int count =
DSL.using(configuration)
   .fetchValue(selectCount().from(Table));

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

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

但请注意,这会呈现这样的嵌套选择:

 SELECT COUNT(*) FROM (SELECT a, b, ... FROM Table)

原文由 Lukas Eder 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是解决方案我们必须像这样使用

  selectQueryRecord.fetchCount();

原文由 Subodh Joshi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏