迭代器输出值为什么只有最后一条记录值~~~~~~~~求助
菜鸟求助:
我在javabean中往迭代器中存入值,是这样写的:
public Iterator typeexcuteQuery(){
ArrayList arraylist=new ArrayList();
try{
yybean.connect();
s= "select * from [type] ";
trs=(yybean.stmt).executeQuery(s);
while (trs.next()) {
typelist1.type=trs.getString( "type ");
typelist1.introduce=trs.getString( "introduce ");
arraylist.add(typelist1);
}
return arraylist.iterator();
}
catch(Exception e){
e.printStackTrace();
return null;
}
}
在jsp页面里调用的时候这样写:
<%
Iterator iterator=editnewsBeanId.typeexcuteQuery();
String type_;
while(iterator.hasNext()){
typeListId=(yy.typelist)iterator.next();
type_=typeListId.type;
System.out.println(type_);
%>
<option value= <%=type_%> > <%=type_%>
<%}%>
输入的记录和库中的记录条数相同,但内容却全是最后一条库中最后一条记录的内容....好晕呀~~~~~~~~~~~~~~`请各位大大帮帮忙~
------解决方案--------------------while (trs.next()) {
typelist1.type=trs.getString( "type ");
//> > 这里的typelist1应该每次都重新定义一个,否则你每次都在改同一个对象,当然最后一次改的值是有效的
typelist1.introduce=trs.getString( "introduce ");
arraylist.add(typelist1);
}