日期:2014-05-18  浏览次数:20569 次

迭代器输出值为什么只有最后一条记录值~~~~~~~~求助
菜鸟求助:
我在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);
}