一个关于Vector的问题
在用vector的时候,我新插入的输入总是覆盖前面的得数据??不知道怎么回事,请高手指正,下面是出错代码。
Vector user=new Vector;
rs=stmt.executeQuery("select * from admin");
while (rs.next())
{
String id=rs.getString(1);
String pass=rs.getString(2);
String flag=rs.getString(3);
String info=rs.getString(4);
Date time=rs.getDate(5);
temp.setId(id);
temp.setPassword(pass);
temp.setFlag(flag);
temp.setInfo(info);
user.addElement(temp);
}
temp所属的类里面是设定id,pass,flag,info的具体数值,如数据库有6条纪录,最后查的user.size()确实是6。但是用
for(int i=0;i<user.size();i++)
{ administrators temp1=(administrators)user.elementAt(i);
System.out.println(temp1.getId());
System.out.println(temp1.getPassword());
System.out.println(temp1.getInfo());
System.out.println(temp1.getFlag());
}
取出数据发现,结果6条纪录都是最后一条纪录。不知道怎么回事?
问题点数:50、回复次数:4Top
1 楼myxd(c++)回复于 2004-04-04 19:21:59 得分 40
楼主这样:
Vector user=new Vector;
rs=stmt.executeQuery("select * from admin");
while (rs.next())
{
String id=rs.getString(1);
String pass=rs.getString(2);
String flag=rs.getString(3);
String info=rs.getString(4);
Date time=rs.getDate(5);
administrators temp1=new administrators();
temp.setId(id);
temp.setPassword(pass);
temp.setFlag(flag);
temp.setInfo(info);
user.addElement(temp);
}
Top
2 楼totodo(土豆仙)回复于 2004-04-04 19:22:55 得分 10
在循环里 每次 都要 new administrators....Top
3 楼totodo(土豆仙)回复于 2004-04-04 19:24:24 得分 0
哈哈。。记得释放啊。。。Top
4 楼liueos(刘老根)回复于 2004-04-04 21:44:34 得分 0
赫赫,刚发完贴,就自己查出来。哎,基础太差了!但依然谢谢你们。:)Top




