📄 558903.xml
字号:
<?xml version='1.0' encoding='GB2312'?>
<?xml-stylesheet type='text/xsl' href='../csdn.xsl'?>
<Topic>
<Issue>
<PostUserNickName>飞翔</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>105</credit>
<TopicId>558903</TopicId>
<TopicName>关于ResultSet的问题</TopicName>
<PostUserId>177448</PostUserId>
<PostUserName>yuanfy</PostUserName>
<RoomName>JSP</RoomName>
<ReplyNum>27</ReplyNum>
<PostDateTime>2002-3-6 16:46:42</PostDateTime>
<Point>60</Point>
<ReadNum>0</ReadNum>
<RoomId>28</RoomId>
<EndState>2</EndState>
<Content>刚才的贴子打不开,重新发一遍
请各位有经验的高手指点:
ResultSet rs1=statement.execute("select 语句1");
while (rs1.next()){
  ResultSet rs2=statement.execute("select 语句2");
  while (rs2.next()){
    ...
  }
  ...
}
其中,select 语句2中用到了rs1中的变量
因为系统不允许定义同名的ResultSet,我想问:想实现以上功能怎么办</Content>
</Issue>
<Replys>
<Reply>
<PostUserNickName>色子</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>115</credit>
<ReplyID>3728506</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>62789</PostUserId>
<PostUserName>zhjx_10</PostUserName>
<Point>10</Point>
<Content>建立另一个Statement对象 statement2
ResultSet rs2 = statement.execute("select 语句2");
</Content>
<PostDateTime>2002-3-6 17:00:11</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>飞翔</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>105</credit>
<ReplyID>3729044</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>177448</PostUserId>
<PostUserName>yuanfy</PostUserName>
<Point>0</Point>
<Content>我是说rs2,在循环内部需要建立多个。不是statement。</Content>
<PostDateTime>2002-3-6 17:31:04</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>光</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>3729198</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>33951</PostUserId>
<PostUserName>Hikaru</PostUserName>
<Point>20</Point>
<Content>把rs2放到while上面定义就行了,赋值还是在原来的地方。</Content>
<PostDateTime>2002-3-6 17:38:19</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>光</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>3729227</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>33951</PostUserId>
<PostUserName>Hikaru</PostUserName>
<Point>0</Point>
<Content>比如
ResultSet  rs1=statement.execute("select  语句1"); 
ResultSet  rs2 = null;//或则用构造函数
while  (rs1.next()){ 
    rs2=statement.execute("select  语句2"); 
    while  (rs2.next()){ 
        ... 
    } 
    ... 
} 
</Content>
<PostDateTime>2002-3-6 17:39:41</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>Junior Coder</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>3729545</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>190636</PostUserId>
<PostUserName>David017</PostUserName>
<Point>0</Point>
<Content>当你用一个statement去执行另外一个查询时
用这个statement前面获得的resultset结果就会被自动关闭
 zhjx_10(色子) 说得对,不过他写错了
是:ResultSet  rs2  =  statement2.execute("select  语句2"); 
statement1= conn.create...
statement2= conn.create...
ResultSet  rs1=statement1.execute("select  语句1"); 
while  (rs1.next()){ 
    ResultSet  rs2=statement2.execute("select  语句2"); 
    while  (rs2.next()){ 
        ... 
    } 
    ... 
} 
</Content>
<PostDateTime>2002-3-6 18:01:33</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>笨笨</PostUserNickName>
<rank>两星(中级)</rank>
<ranknum>star2</ranknum>
<credit>120</credit>
<ReplyID>3729774</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>115764</PostUserId>
<PostUserName>yanchang</PostUserName>
<Point>10</Point>
<Content>如果你是用ODBC连接的,恐怕连Connection都要两个,否则包错
但用JDBC连接的Oracle就可以
只要生命两个Statement就可以</Content>
<PostDateTime>2002-3-6 18:19:04</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>光</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>3731693</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>33951</PostUserId>
<PostUserName>Hikaru</PostUserName>
<Point>0</Point>
<Content>实际上,提问的重点在于重复命名问题……各位~</Content>
<PostDateTime>2002-3-6 21:25:11</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>飞翔</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>105</credit>
<ReplyID>3733334</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>177448</PostUserId>
<PostUserName>yuanfy</PostUserName>
<Point>0</Point>
<Content>谢谢各位,如下所改,是否正确:
statement1=conn.create... 
statement2=conn.create... 
ResultSet rs1=statement1.execute("select 语句1");  
ResultSet rs2=null;//或则用构造函数 
while (rs1.next()){  
  rs2=statement2.execute("select 语句2");  
  while (rs2.next()){  
    ...
  }  
  ... 
}
rs2.close();
rs1.close();
conn.close();</Content>
<PostDateTime>2002-3-7 8:08:17</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>光</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>3734374</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>33951</PostUserId>
<PostUserName>Hikaru</PostUserName>
<Point>0</Point>
<Content>应该可以了。
编译了么?</Content>
<PostDateTime>2002-3-7 9:28:36</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>光</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>3734394</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>33951</PostUserId>
<PostUserName>Hikaru</PostUserName>
<Point>0</Point>
<Content>哦,statement最好也要close</Content>
<PostDateTime>2002-3-7 9:29:26</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>飞翔</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>105</credit>
<ReplyID>3735450</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>177448</PostUserId>
<PostUserName>yuanfy</PostUserName>
<Point>0</Point>
<Content>请问什么时机关闭rs2才对?
在while(rs1.next())中可以吗?
</Content>
<PostDateTime>2002-3-7 10:29:17</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>飞翔</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>105</credit>
<ReplyID>3735508</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>177448</PostUserId>
<PostUserName>yuanfy</PostUserName>
<Point>0</Point>
<Content>能帮我写一下代码吗?包含各个对象关闭的时机!
用tomcat打开网页,提示错误: 
[Microsoft][ODBC  SQL  Server  Driver]连接占线导致另一个  hstmt 
请问是不是对象有冲突的原因?</Content>
<PostDateTime>2002-3-7 10:32:31</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>三级(初级)</rank>
<ranknum>user3</ranknum>
<credit>100</credit>
<ReplyID>3736752</ReplyID>
<TopicID>558903</TopicID>
<PostUserId>142296</PostUserId>
<PostUserName>Kin_CIOM</PostUserName>
<Point>20</Point>
<Content>while  (rs1.next()){    
    rs2=statement2.execute("select  语句2");    
    while  (rs2.next()){    
        ... 
    }    
    ...  
    rs2.close(); 
} 
rs1.close(); 
statement2.close();
statement1.close();
conn.close();</Content>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -