为什么get()无论给什么参数,都返回的是最后一个列表元素,求解决

解决方案 »

  1.   

    楼主检查一下程序,list是动态的集合,用index定位的,get返回对应的对象
      

  2.   

    数据库中6条不同的记录,读出来是一样的,但是size()返回时6
      

  3.   

    public List<Goods> selectAllGoods(){
    List<Goods> list=new ArrayList<Goods>();
    Goods good=new Goods();
    try{
    stmt=con.prepareStatement("select * from goods");
    ResultSet rs=stmt.executeQuery();
    while(rs.next()){
    good.setGoods_id(rs.getString(1));
    good.setGoods_name(rs.getString(2));
    good.setGoods_price(rs.getFloat(3));
    good.setPicture(rs.getString(4));
    list.add(good);
    }
    }catch(Exception e){}
    return list;
    }
    以上是个dao中的方法
     public static void main(String args[]){
          GoodsDao gd=new GoodsDao();
          //Goods good=new Goods();
          for(int i=0;i<gd.selectAllGoods().size();i++){
          Goods good=gd.selectAllGoods().get(i);
          System.out.println(good.getGoods_id()+"|"+good.goods_name);
          }
    这个用来读取的
      

  4.   

    那就是你数据库到LIST存放数据的时候出错了,检查下那段代码! LIST存放正确不会出现那问题的
      

  5.   

    for(Goods b:gd.selectAllGoods()){
      System.out.println(good.getGoods_id()+"|"+good.goods_name);
    }
    不行就是数据库拿出来的时候出问题了
      

  6.   


    public List<Goods> selectAllGoods(){
    List<Goods> list=new ArrayList<Goods>();try{
    stmt=con.prepareStatement("select * from goods");
    ResultSet rs=stmt.executeQuery();
    while(rs.next()){
    Goods good=new Goods();
    good.setGoods_id(rs.getString(1));
    good.setGoods_name(rs.getString(2));
    good.setGoods_price(rs.getFloat(3));
    good.setPicture(rs.getString(4));
    list.add(good);
    }
    }catch(Exception e){}
    return list;
    }
    这样就不会啦