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次显示的记录不一样了?
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中 }