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

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();   //重新执行到第一行的前一行,以便查询结果集的集体内容

 

    原文作者:华子华
    原文地址: https://blog.csdn.net/wang975380547/article/details/54024020
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞