求解释 jdbc的东西 不明白为什么

阿诺 2012-02-03 04:48:40
List commonlist=new ArrayList();
dbc = new DBConnection();
ps = dbc.getConnection().prepareStatement(csql);
rs = ps.executeQuery();
List allI=new ArrayList();
while(rs.next()){ //注意这里 我先把所有的name放到list里面
String i = rs.getString("name");
allI.add(i);
}
for(int a=0;a<allI.size();a++){ //遍历list得到每一个name值
String name=(String) allI.get(a);
System.out.println(name);
String huiyuanid = "select auto_id from member where
content_type=1 and content_user='"+name+"'";
dbc = new DBConnection();
ps = dbc.getConnection().prepareStatement(huiyuanid);
rs = ps.executeQuery();
while(rs.next()){
int memberId= rs.getInt(1);
commonlist.add(memberId);//把最后得到的id放入又一个list中
}
}
当这些语句执行完毕后 我得到 commonlist.size()是240【数据库就是240条数据】
我将上面的程序改为如下:
List commonlist=new ArrayList();
dbc = new DBConnection();
ps = dbc.getConnection().prepareStatement(csql);
rs = ps.executeQuery();
while(rs.next()){ //1
String name = rs.getString("name") String huiyuanid = "select auto_id from member where content_type=1 and
content_user='"+name+"'";
dbc = new DBConnection();
ps = dbc.getConnection().prepareStatement(huiyuanid);
rs = ps.executeQuery();
while(rs.next()){ //2
int memberId= rs.getInt(1);
commonlist.add(memberId);//3
}
}//4
这样得到的commonlist大小只是1 我调试了下 大概是秩序:1-2-3.完毕后又由3倒回去即:3-2-1.最后就到4
而我预期的应该是1-2-3,3-2-1.又1-2-3,3-2-1.这样反复直到240数据都得到。
请问各位前辈们 我哪里理解错了,请指教!谢谢
...全文
57 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acesidonu 的回复:]

rs 被重新赋值了
[/Quote]


3楼正解..
  • 打赏
  • 举报
回复
你后面那俩个while嵌套导致rs错了
Acesidonu 2012-02-03
  • 打赏
  • 举报
回复
rs 被重新赋值了
yaoweijq 2012-02-03
  • 打赏
  • 举报
回复
重复用ps rs。。。
zxl333 2012-02-03
  • 打赏
  • 举报
回复
你这里面只添加了一个name,上面使用List添加,也就说吧所有的name都添加进去了,因为你的name不同,只放一个name,肯定是查出来的只有一个啦

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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