获取结果集值的计数

时间:2014-08-24 11:33:35

标签: java jdbc resultset record-count

我需要您的助手并帮助获取结果集中可用值的计数。结果集有22个记录,在下面的代码中,它打印从1到23的计数。有没有办法得到总数。记录为22(仅一个值)或从第一个值减去最后一个值?

我的代码在

下面
while (rs.next())
        {

        count=0;
        name1=rs.getString("name");  
                    out.println(rs.getRow());

                 }

我尝试使用rs.first()和rs.last(),它产生了以下错误: java.sql.SQLException:仅向前结果集的无效操作:第一个

我尝试将参数添加到createstatement,但同样的例外是:

conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);

java.sql.SQLException:仅转发结果集的操作无效:last 请帮助我解决上述问题

2 个答案:

答案 0 :(得分:1)

试试这个:

int rowcount = 0;
if (rs.last()) {
  rowcount = rs.getRow();
  rs.beforeFirst(); 
}

修改

您需要更改此查询的语句,以便您可以使用rs.last()

Statement stmt = con.createStatement(rs.TYPE_SCROLL_INSENSITIVE);
ResultSet rs = stmt.executeQuery("Your query");

检查Oracle Docs

答案 1 :(得分:0)

您可以使用MySQL count(*)

  try{
      Statement stmt = connection.createStatement();
      String selectquery = "select count(*) from YourTable";
      ResultSet rs = stmt.executeQuery(selectquery);
      rs.next();          
      System.out.println("Amount of rows :" + rs.getInt(1));
    }

如果您想根据" name"计算行数,那么

try{
          Statement stmt = connection.createStatement();
          String selectquery = "select count(name) from YourTable";
          ResultSet rs = stmt.executeQuery(selectquery);
          rs.next();          
          System.out.println("Amount of rows :" + rs.getInt(1));
        }