周末散分,顺便问个问题。

火箭超人 2008-11-21 10:11:25
问个初级问题啊,在用jdbc时,就是那个resultSet结果集得到某个字段值只能得到一次吗。
比如 .........
.
.
resutSet rs=stm.excuteQuery(sql);
while(rs.next)
{
System.out.print(rs.getString(0)); //第一次取值可以,正常
System.out.print(rs.getString(0)); //这里出现异常,提示no data found
}

请问大侠们,为什么,小弟研究的不深,请指教,祝大家周末愉快。。
...全文
177 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaojiit 2008-11-22
  • 打赏
  • 举报
回复
Statement stm = con.createStatement(int type,int concurrency);
Type 的类型 :
ResultSet.TYPE_FORWORD_ONLY:rs的游标只能向下移动。
ResultSet.TYPE_SCROLL_INSENSITIVE:rs的游标可以上下移动
默认是第一种的。
頑笑 2008-11-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yinyuan1987 的回复:]
对不起上面说的不准确,

Statement stm = con.createStatement(int type,int concurrency);

ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");

第一个是回滚数据集类型,表示ResultSet的游标可以上下移动,第二个是表示可以用结果集更新数据库内容


其中type有如下几个值:
ResultSet.TYPE_FORWORD_ONLY:rs的游标只能向下移动。
ResultSet.TYPE_SCROLL_INSENSITIVE:rs的游标可以上下移动,当…
[/Quote]

楼上正解
Dreamsea_2008 2008-11-22
  • 打赏
  • 举报
回复
偶也遇到过这种问题,不可以重复读取
老紫竹 2008-11-22
  • 打赏
  • 举报
回复
晕,
1 0没有数据,从1开始
2 如果不允许读第二次,请更新jdbc驱动
scf102919 2008-11-22
  • 打赏
  • 举报
回复
学习
uYuOmooo 2008-11-22
  • 打赏
  • 举报
回复
学习
dwj520 2008-11-22
  • 打赏
  • 举报
回复
从1 开始读的吧!
0是没东西的!
如果从1开始数据库有多小就能读多小条!
mytimes_walker 2008-11-22
  • 打赏
  • 举报
回复
jf
lijia0087 2008-11-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yinyuan1987 的回复:]
对不起上面说的不准确,

Statement stm = con.createStatement(int type,int concurrency);

ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");

第一个是回滚数据集类型,表示ResultSet的游标可以上下移动,第二个是表示可以用结果集更新数据库内容


其中type有如下几个值:
ResultSet.TYPE_FORWORD_ONLY:rs的游标只能向下移动。
ResultSet.TYPE_SCROLL_INSENSITIVE:rs的游标可以上下移动,当数据库变化时…
[/Quote]
学习
qdq821713194 2008-11-22
  • 打赏
  • 举报
回复
请问你们是不是专业的java人员啊,好恐怖啊,我怎么不明白你们的语言啊
ling8280 2008-11-22
  • 打赏
  • 举报
回复
没有注意过这个问题,不知道CatchRowSet是不是可以反复读,它比ResultSet的功能多.
yy8616270 2008-11-22
  • 打赏
  • 举报
回复
如果需要多次用到相同Column的数据可以先
String a=rs.getString(0);
int b=rs.getInt(1);
System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);
kao331431214 2008-11-22
  • 打赏
  • 举报
回复
看看
zhouzhijian888 2008-11-22
  • 打赏
  • 举报
回复
jf
CH_Accp 2008-11-22
  • 打赏
  • 举报
回复
楼主可以用 ResultSetMetaData 的。。
CH_Accp 2008-11-22
  • 打赏
  • 举报
回复
楼主可以用 ResultSetMetaData 的。。
hejia12 2008-11-22
  • 打赏
  • 举报
回复
SQL Server 2000 是不允许反复读...不过你可以用字符串把读取的结果记录下来嘛.
APOLLO_TS 2008-11-22
  • 打赏
  • 举报
回复
印象中有一种叫缓冲数据集!!可以解决你的烦恼!
ws010 2008-11-21
  • 打赏
  • 举报
回复
你那里已经有While循环了,干吗还要取一次?
Landor2004 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yinyuan1987 的回复:]
对不起上面说的不准确,
......
ResultSet.TYPE_FORWORD_ONLY:rs的游标只能向下移动。
ResultSet.TYPE_SCROLL_INSENSITIVE:rs的游标可以上下移动,当数据库…
[/Quote]
这个是对行的滚动设定,至于数据项的前后没有在本机测试过,不敢确定,楼主可以试一下!
加载更多回复(11)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧