关于java中返回ResultSet结果集行数

  • Post author:
  • Post category:java




1. 如何获取返回ResultSet结果集的行数:






(1).括号内部没有参数,则可以用以下方法



st=conn.createStatement();

int  rowcount = 0;

ResultSet resultSet = st.executeQuery(sql);

while(resultSet.next()){


rowcount++;

}


此时返回的rowcount就是对应的结果集的总的行数。但是此时的resultSet.next()已经执行到最后一行,无法滚动执行。





(2).在括号内部添加参数



st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);



注:第一个参数:



ResultSet.TYPE_FORWARD_ONLY:不滚动结果集;




ResultSet.TYPE_SCROLL_INSENSITIVE:滚动结果集,但结果集数据不会再跟随



数据库



而变化;


ResultSet.TYPE_SCROLL_SENSITIVE:滚动结果集,但结果集数据不会再跟随数据库而变化;


第二个参数:






CONCUR_READ_ONLY



:结果集是只读的,不能通过修改结果集而反向影响数据库;


CONCUR_UPDATABLE:结果集是可更新的,对结果集的更新可以反向影响数据库。





则可以继续执行:



int rowcount =0;




ResultSet resultSet = st.executeQuery(sql);


resultSet.last();      //直接执行跳到结果集的最后一行



rowcount = resultSet.getRow();   //这一句就能得到结果集的行数

resultSet.beforeFirst();   //重新执行到第一行的前一行,以便查询结果集的集体内容






版权声明:本文为wang975380547原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。