一个Statement不能同时使用两个ResultSet是嘛?

mz24 2004-04-30 11:56:17
就是说一个数据库连接,当使用
ResultSet rs1 = dbStatement.executeQuery(strSQL);
后,如果再使用
ResultSet rs2 = dbStatement.executeQuery(strSQL);
那么rs1的结果会被冲掉是嘛?具体表现就是rs2.close()执行后,rs1也不能用了。

这样如果要同时使用两个结果集必须建立两个连接,是嘛?
...全文
281 16 点赞 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
旭日东升DK 2004-07-27
失败
  • 打赏
  • 举报
回复
wandou999 2004-05-11
这是生命周期的问题,用一个RESULTSET后,自动消亡!
  • 打赏
  • 举报
回复
tiannet 2004-05-10
最好一次只使用一个statement,
两个或两个以上速度很慢的。

你为什么要两个ResultSet,
你可以先取出一个结果放在数组里来尽量满足你的要求啊,
或者用sql语句。
  • 打赏
  • 举报
回复
gln 2004-05-10
只能使用两个statement才可以,statement和resultset是一一对应的
  • 打赏
  • 举报
回复
gsen 2004-05-10
先处理第一个rs,然后在执行ResultSet rs2 = dbStatement.executeQuery(strSQL);在处理第二个rs
  • 打赏
  • 举报
回复
caoxmby 2004-05-10
使用两个bean来存这两个结果集的数据
  • 打赏
  • 举报
回复
一个Statement只能给一个ResultSet提供数据
这中情况最好建立两个Statement来实现你不同的操作
我有碰到过这种情况,用了三个dbStatement
最好区分开,不然肯定会出问题
  • 打赏
  • 举报
回复
长见识!
  • 打赏
  • 举报
回复
芒果 2004-05-10
楼上的理论是正确的
  • 打赏
  • 举报
回复
北极猩猩 2004-05-10
Statement开辟对数据库的一个访问区,而ResultSet封装了数据库的游标,对Statement进行访问。所以,ResultSet和Statement是对应的,一个Statement不能对应两个ResultSet。

Statment表示的不是连接,Connection才是,这也是为什么事务管理是由Connection来负责的
  • 打赏
  • 举报
回复
kingfish 2004-05-10
Statement并不是连接, 类似于Query.
1个Connect中可以有多个Statement.
Statement关闭后,结果集自然就没有了.
  • 打赏
  • 举报
回复
一个Statement只能给一个ResultSet提供数据,这是java的规矩
  • 打赏
  • 举报
回复
Arias 2004-05-10
一般情况下,这中情况最好建立两个Statement来实现你不同的操作,可能在有些时候这问题
没有显现出来,但是这种情况下一定会出问题:
ResultSet rs1 = dbStatement.executeQuery(strSQL);
while(rs1.next())
{
ResultSet rs2 = dbStatement.executeQuery(strSQL);
}

就会出现问题那!所以建议在做不同的操作时候还是有区分的好!
  • 打赏
  • 举报
回复
mz24 2004-05-10
to shos:
不行的,我的是异步过程,两个结果集根本没法断定谁先谁后。
我建立两个连接一点问题也没有了。
不过很郁闷。难道Java只能这样?
我想在一个类里共享一个连接,不必每次使用的时候都要去建立连接。建立连接难道不花费时间资源嘛?!
但是这种要求JDBC都不能满足?别的语言就可以。是不是Connection可以共享,Statement不能共享?没试过。谁提供一点经验?
  • 打赏
  • 举报
回复
Shawn和月 2004-04-30
你可以在建立第二个结果集之前先把第一个的数据读出来,因为已经读出的数据是静态的,不会随时间而改变。
  • 打赏
  • 举报
回复
luoyewuhen 2004-04-30
应该不能,rs1可能取不出数据。老早之前遇到了这么一个bug,调试了很久呢
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-04-30 11:56
社区公告
暂无公告