java中sql的多重循环查询问题求助。
能否这样使用多重循环查询?即:sql1="selectafromtable1";rs1=stmt1.executeQuery(sql1);while(rs1.next()...
能否这样使用多重循环查询?即:
sql1="select a from table1";
rs1=stmt1.executeQuery(sql1);
while(rs1.next())
{
sql2="select b from table2";
rs2=stmt2.executeQuery(sql2);.
while(rs2.next())
{
....
rs2.close();
}
}
....
rs1.close();
(其中ResultSet rs1,rs2 Statement stmt1,stmt2;)
打错了,更正一下:
rs2.close();的位置在while(rs2.next())的循环外。
可是运行时报错。 展开
sql1="select a from table1";
rs1=stmt1.executeQuery(sql1);
while(rs1.next())
{
sql2="select b from table2";
rs2=stmt2.executeQuery(sql2);.
while(rs2.next())
{
....
rs2.close();
}
}
....
rs1.close();
(其中ResultSet rs1,rs2 Statement stmt1,stmt2;)
打错了,更正一下:
rs2.close();的位置在while(rs2.next())的循环外。
可是运行时报错。 展开
4个回答
展开全部
Statement既然有两个,即它们的结果集是分开的,这样从数据库上是没有错误的,第一次循环(这里的第一次循环是指外围循环,即rs1的循环)没有问题,问题在于当进入第二次循环(rs1的第二次循环)后,由于rs2在第一次循环(这里的第一次循环是指外围循环,即rs1的循环)结束时调用了close方法已经关闭了,所以当第二次循环时(rs1的第二次循环)运行在rs2=stmt2.executeQuery(sql2);.
会发生错误,rs2已经关闭了,所以建议rs2这个对象要在rs1的循环中建立。
在使用Statement时要注意调用executeQuery,每调用一次,那么该Statement对象对应的上一次结果集就会自动关闭掉。
如rs1=st.executeQuery(sql);
rs2=st.executeQuery(sql);
这时rs1就自动关闭掉了,你再想获得rs1的内容会异常。
会发生错误,rs2已经关闭了,所以建议rs2这个对象要在rs1的循环中建立。
在使用Statement时要注意调用executeQuery,每调用一次,那么该Statement对象对应的上一次结果集就会自动关闭掉。
如rs1=st.executeQuery(sql);
rs2=st.executeQuery(sql);
这时rs1就自动关闭掉了,你再想获得rs1的内容会异常。
展开全部
可以的,没问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从语法上来说没有问题
但是实际开发中不会这么使用的
最好从sql语句上着手
但是实际开发中不会这么使用的
最好从sql语句上着手
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你那个"a"和"b"是什么啊?查出来的结果是不是多个?要是多个的话也有可能是可以循环的,查出来的结果要是单个,就不可以实现多重循环,还有一点,你这是双重循环,要记住,“外循环一个,内循环一遍。”
要是对我的解释不懂的话,可以Q我:940701720
要是对我的解释不懂的话,可以Q我:940701720
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询