你在循环里输出rs的行号看看 while(rs.next())
{
...
System.out.println(rs.getRow());
}那个8000多是不是跟表的总记录数相同,或许开了8000多记录的空间,存取了179记录
如果这样rs.last()应该返回false
{
...
System.out.println(rs.getRow());
}那个8000多是不是跟表的总记录数相同,或许开了8000多记录的空间,存取了179记录
如果这样rs.last()应该返回false
解决方案 »
- 【求助】静态初始化
- 用java正则表达式匹配这个字符串(<?xml version="1.0" encoding="UTF-8"?>)请各位高手们帮忙
- 模态对话框的问题
- 请问:用Java排序的 package org.rut.util.algorithm.support???
- 为什么我在Eclipse里面设置了classpath,但是它就是找不到API?
- jms的消息选择器 急 急 急
- 终于download到Rowset.jar了!!!大家快去!
- 大家练练手,征集下面这个小程序的算法!!!(很有趣的阿!!)
- 出现ORA-01401和ORA-01008错误?
- 想问一问正则表达式在平常开发中会经常用到吗
- 求助!如何在当前子窗口没被操作前父窗口不能被操作
- 新手问题,请大家帮忙看一下,谢谢。
while(rs.next())
{
String phone=rs.getString("times");
System.out.println(phone);
num++;
}System.out.println("数量:" + num);
估计是你rs没关造成的
不过其他都是空的,不要紧的吧
int size = rs.getRow(); // 取得记录数,注意这里!!!!
rs.beforeFirst();
System.out.println("TIMES"+size); //!!!!!!!!!!
最诡异的问题是那个 while(rs.next())循环会抛出异常,当显示了179个记录以后。
感觉就是rs里边实际只有179个记录,但是他自己认为自己有8000多个
请有经验的朋友提醒下呢~
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 然后再试一下
既然是对的那就找为什么 而不是找方法改变它 你要想看不见8000 把那输出删掉就OK你要得到记录数 循环完了 rs.getRow()就是你的记录数也许说明了你这种方法取记录数是不可取的 至少当group by时 group by时 它数据库里相关记录数还是8000多 它先开了这么大的空间 然后把你要的结果记录处理后也存在了同一空间里 所以 rs.last()指向了空间的末尾 而不是你想要的记录数末尾上面的只是猜想和一种可能
你要得到总记录数,我建议你最好把数据集用循环+1的方法来实现吧
{
String phone=rs.getString("times");
System.out.println(phone);
}
我百思不得其解,才加了一段代码,看看rs的size是多少,结果发现是8000多,后来我把rs.next() 改成 !rs.isLast()结果还是异常。
刚刚把sql server 配置好了,马上试下