首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

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

2012-03-31 
求解释 jdbc的东西 不明白为什么List commonlistnew ArrayList()dbc new DBConnection()ps dbc.get

求解释 jdbc的东西 不明白为什么
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数据都得到。
  请问各位前辈们 我哪里理解错了,请指教!谢谢

[解决办法]
你这里面只添加了一个name,上面使用List添加,也就说吧所有的name都添加进去了,因为你的name不同,只放一个name,肯定是查出来的只有一个啦
[解决办法]
重复用ps rs。。。

[解决办法]
rs 被重新赋值了
[解决办法]
你后面那俩个while嵌套导致rs错了
[解决办法]

探讨

rs 被重新赋值了

热点排行