QueryBean qb = new QueryBean();
ResultSet rs = null;
ArrayList list0 = new ArrayList();
ArrayList list = new ArrayList();
try{
qb.setConnection(request);
qb.setQuerystatement(sql);
rs = qb.getResult(request);
rs.last();
System.out.println(rs.getRow());
rs.beforeFirst();
在数据库里查出来是34,但是在程序中只有10

解决方案 »

  1.   

    很明显是分页了 你要查总记录树 count(主键ID) 就行了
    你用查询出来的结果集的size当总记录 太不靠谱了
      

  2.   

    将sql语句在数据库中直接执行看看效果就知道了
      

  3.   

    一次查询后,ResultSet中只含有10条记录。
    当调用next()方法后,游标会指向下一条记录。
    当集合内的10条记录全部遍历完以后,再次从数据库中取出来10条记录,存在ResultSet中。
    所以,last()方法只是将游标移动到当前集合内的最后一条记录上面,所以结果为10。
    如果楼主只是想取行数的话,建议还是要select count(1)的写法比较好。
      

  4.   


    或者,在生成PreparedStatement时候,指定”ResultSet.TYPE_SCROLL_INSENSITIVE”和”ResultSet.CONCUR_UPDATABLE”。
    具体做法,网上找一下就有的。
      

  5.   

    show_sql一下,复制到数据库里看看
      

  6.   

    全错!是oracle数据库的问题,9i不能那么些,10g可以