估计可能是这样
public ArrayList<XXXbean> YYY(){
ArrayList<XXXbean> ret = new ArrayList<XXXbean>();//第一句
.......
.......
while(result.next()){
XXXbean OB = new XXXbean();//第二句
.......
.......
ret.add(OB);
}
.......
.......
}
正常装入数据应当像上面那样 假如你把第一句ArrayList<XXXbean> ret = new ArrayList<XXXbean>();写到了while循环里 或者把第二句XXXbean OB = new XXXbean();写到了while写到了循环外 就会出现只返回一条记录
public ArrayList<XXXbean> YYY(){
ArrayList<XXXbean> ret = new ArrayList<XXXbean>();//第一句
.......
.......
while(result.next()){
XXXbean OB = new XXXbean();//第二句
.......
.......
ret.add(OB);
}
.......
.......
}
正常装入数据应当像上面那样 假如你把第一句ArrayList<XXXbean> ret = new ArrayList<XXXbean>();写到了while循环里 或者把第二句XXXbean OB = new XXXbean();写到了while写到了循环外 就会出现只返回一条记录
上面说到的第一种可能的错误 因为如果把ArrayList<XXXbean> ret = new ArrayList<XXXbean>();这句写到循环里 每次都生成新的list所以退出循环时只剩最后生成的那个list而且里面只装有最后一次的对象 在页面显示时就只显示最后一条记录一次
但根据楼主所描述的问题看 应该是 第二种可能的错误 因为如果把XXXbean OB = new XXXbean();这句写到了while写到了循环外 那对于循环来说始终操作和装入的都是同一个对象 尽管可能你在循环里多次调用set方法进行存值 但是因为都是相同的对象所以每次循环调用set方法存入的值都会将上一次set方法存入的值覆盖掉 最终只剩最后一次存入set方法的值 而在循环里向list里add了5次 但这5次存入的都是相同的对象OB(new这个关键字不用我说了吧 在循环里new的话每次存的都是不同的对象 在循环外new的话每次存的都是相同的对象) 而5个相同的对象最后调用get方法进行显示的时候 当然得到和显示的值都是一样的 所以就会出现楼主所看到的显示5条相同的记录 而且是最后一条记录显示了5次
j2ee技术交流群
9438177
欢迎朋友们的加入
为的是探讨技术 呵呵