DBConnection dbc1 = new DBConnection();
  Connection conn1 = dbc1.getConnection();
try {


           st1 = conn1.createStatement();

  System.out.println(sql1);        
  rs1=st1.executeQuery(sql1);

  ArrayList<org.ZD.form.InPutShow2> list1 =new  ArrayList<org.ZD.form.InPutShow2>();
   InPutShow2 au1   =   new InPutShow2();
 
   while(rs1.next()){
              
        au1.setGD_ID(rs1.getString("SGD_ID"));
        
        au1.setGD_NAME(rs1.getString("GD_NAME"));
        
        au1.setGOOD_INPUTNUM(rs1.getInt("SK_NUM"));
        
        System.out.println(au1.getGD_ID());
        System.out.println(au1.getGD_NAME());
        System.out.println(au1.getGOOD_INPUTNUM());    
        list1.add(au1);    //把结果放到LIST中

                             }                                          上面输出结果为  1 、甘草、50;
                                                          2、绿豆 、100
然后把数据取出来:                  for(int i = 0 ; i < list1.size() ; i ++) 
 { org.ZD.form.InPutShow2 dept = (org.ZD.form.InPutShow2)list1.get(i); 


 System.out.println(dept.getGD_ID());
 System.out.println(dept.getGD_NAME());
 System.out.println(dept.getGOOD_INPUTNUM());
 }
为什么得到的数据是这样了?     2、绿豆 、100;
                                   2、绿豆 、100;
很奇怪,只显示两条重复的记录。
为什么2次显示的记录不一样了?

解决方案 »

  1.   

    InPutShow2 au1  =  new InPutShow2();   while(rs1.next()){ 
                  
            au1.setGD_ID(rs1.getString("SGD_ID")); 
            
            au1.setGD_NAME(rs1.getString("GD_NAME")); 
            
            au1.setGOOD_INPUTNUM(rs1.getInt("SK_NUM")); 
            
            System.out.println(au1.getGD_ID()); 
            System.out.println(au1.getGD_NAME()); 
            System.out.println(au1.getGOOD_INPUTNUM());    
            list1.add(au1);    //把结果放到LIST中                             } 
    JAVA是指针引用
    你的list中放了两个指向一个实例的指针,所以取出来的就是一个内容// 删掉InPutShow2 au1  =  new InPutShow2();  while(rs1.next()){ 
             InPutShow2 au1  =  new InPutShow2(); //增加     
            au1.setGD_ID(rs1.getString("SGD_ID")); 
            
            au1.setGD_NAME(rs1.getString("GD_NAME")); 
            
            au1.setGOOD_INPUTNUM(rs1.getInt("SK_NUM")); 
            
            System.out.println(au1.getGD_ID()); 
            System.out.println(au1.getGD_NAME()); 
            System.out.println(au1.getGOOD_INPUTNUM());    
            list1.add(au1);    //把结果放到LIST中                             } 
      

  2.   

    非常感谢,,还是对JAVA 的思想不熟,,太谢谢,你这样的 好人了。。