Connection con = ConnectionProvider.getCon();
Statement s_sickLeave = con.createStatement("select count(leavetypeid) from leave where leavetypeid=2");
ResultSet rs_sickLeave = s_sickLeave.executeQuery();
Integer sick_leave_count = rs_sickLeave.getInt(1);//line 4


我在第4行遇到异常。如何访问查询返回的计数值?

最佳答案

您必须遍历结果集以读取每一行。

更改:

ResultSet rs_sickLeave = s_sickLeave.executeQuery();
Integer sick_leave_count = rs_sickLeave.getInt(1);//line 4


至:

ResultSet rs_sickLeave = s_sickLeave.executeQuery();
if ( rs_sickLeave.next() ) {
    Integer sick_leave_count = rs_sickLeave.getInt(1);//line 4
}


由于count(x)返回单行,因此只能迭代单行。否则,请使用while(rs.next())循环语法。

参考:

ResultSet.next()
将光标从当前位置向前移动一排。 ResultSet游标最初位于第一行之前;第一个对方法的调用接下来使第一行成为当前行;第二个调用使第二行成为当前行,依此类推。

关于mysql - 查询返回的访问次数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22626950/

10-12 17:47