如何在Java程序中访问SQL count()查询的值

Ank*_*kur 54 java sql jdbc count

我想使用SQL的COUNT命令获得我发现的值.通常我在getInt()getString()方法中输入我想要访问的列名,在没有特定列名的情况下我该怎么做.

我使用'AS'的方式与用于别名表的方式相同,我不确定这是否会起作用,我想不会.

Statement stmt3 = con.createStatement();
ResultSet rs3 = stmt3.executeQuery("SELECT COUNT(*) FROM "+lastTempTable+") AS count");
    while(rs3.next()){
    count = rs3.getInt("count");
    }
Run Code Online (Sandbox Code Playgroud)

Boz*_*zho 96

使用别名:

SELECT COUNT(*) AS total FROM ..
Run Code Online (Sandbox Code Playgroud)

然后

rs3.getInt("total")
Run Code Online (Sandbox Code Playgroud)

  • 至少从我这边来看,它需要先调用rs3.next()才能调用rs3.getInt("total") (9认同)
  • 它肯定需要调用 rs3.next() (在 getInt() 之前)。否则,它将抛出 SQLException java.sql.SQLException: ResultSet.next was not called (2认同)

Eri*_*oom 43

BohzoBrabster提供的答案显然有效,但您也可以使用:

rs3.getInt(1);
Run Code Online (Sandbox Code Playgroud)

获取第一个值,在您的情况下,只有列.

  • 来自Javadoc:"可以使用列的索引号或列的名称来检索值.通常,使用列索引将更有效." (4认同)
  • 对于大多数应用程序来说,这种级别的性能调优实际上并不重要。使用列索引会使您暴露在 SQL 查询中移动的列中的错误,这可能难以追踪。在这个特定的示例中(仅获取记录计数),这不是问题,但为了应用程序的可持续性需要牢记这一点。 (2认同)