while(rs2.next()){
ls = rs2.getString("istopic");
if(ls=="0"||ls.equals("0")){
out.println("id:"+rs2.getString(1)+"|"+rs2.getString(2));
while(rs.next()){
out.println("--"+i+"--");
j++;
}
}
i++;
}rs是表A的结果
rs2是表A跟表B的视图表
为什么第一次进入的时候就能将表A的东西罗列出来,但是第二次(也就是rs2.next()进入第二次循环)时就不会罗列表A的东西呢?我想做的是:
通过判断视图表中的type_id是否跟表A的id一致,是一致就罗列在它的下方,其实就是做一个树状的图;
解决方案 »
- Servlet定义几个不明白的地方
- 关于Struts2的拦截器使用
- 在java web应用程序中,如何调用c#写得应用?tomcat容器
- 初学者请教%E4%B8%AD%E6%96%87是哪种编码格式
- 求java开源的新闻发布系统
- 100分求助于高手关于获取三级机构的问题 解决问题马上结帖
- 用过resin的人请赐教!500 Servlet Exception
- 在jsp中怎样将图片存入数据库?
- 本人要接开发电子政务的项目,请教大虾,开发电子政务管理系统都需要注意什么问题啊?
- easyui中radio设置默认checked失效的问题
- 谁帮忙做一个读取xml的页面
- hibernate3中批量删除问题(父子表删除)
解决方法,将rs中的值先取出来放在List或者Array中,如
List list = new ArrayList();
while(rs.next()){
list.add(rs.getString(1));
}
while(rs2.next()){
ls = rs2.getString("istopic");
if(ls=="0"||ls.equals("0")){
out.println("id:"+rs2.getString(1)+"|"+rs2.getString(2));
for(int k=0;k<list.size();k++){
out.println("--"+i+"--");
j++;
}
}
i++;
}
out.println("id:"+rs2.getString(1)+"|"+rs2.getString(2));
while(rs.next()){
中间加入
rs = statement.executeQuery(sql);
这样rs2每循环一次就从新给rs赋值,当然这个方法不如上面的好
while(rs.next()){
out.println("--"+i+"--");
j++;
}
再return 一个list,这时候就可以取值了。
你不觉得浪费资源吗?从小学老师就教你节约,节约,都这么大了还不知道节约。。哎。。