大家好,第一次在JAVAEYE中发问题啊,不过我从没断过对JAVAEYE的关注!基本天天在浏览!是这样:大家都知道 在查询数据库的时候
查询出一个结果集
       ResultSet  ret = statement.executeQuery();
      然后我就开始迭代
        while(ret.next){       }我要把查询出来的字段封装到一个JAVABEAN中以方便在页面操作对象然后放到List中!
        所以我就这样写!
       List list = new ArrayList();
       while(re.next){
           TestForm form = new TestForm();
            form.setName("AAA");
            form.setAge("999");
            list.add(form);
      }
    如果结果集很大有好几万条数据那么在循环中就要创建好几万个对象那岂不是很影响性能大家有没有遇到这种情况!
我想优化一下大家有好的方法吗?
欢迎一起参加讨论!

解决方案 »

  1.   

      List list = new ArrayList();
      TestForm form = null;
      while(re.next){
       form = new TestForm();
      form.setName("AAA");
      form.setAge("999");
      list.add(form);
      }
      

  2.   

    建议用hibernate。。
    自动给封装。hibernate就是orm(对象关系映射)完全可以解决楼主的麻烦了。
    不过不知道用hibernate的话那就只能这样。。没其他办法了。
    不过还有种方式是利用apache的commons-beanutils.jar里面的工具类,将属性和列名对应起来自动赋值。。这个比较麻烦,效率的话还没有你自己写的高。
      

  3.   

    jvm创建小对象的性能是很不错的。基本不用担心。
      

  4.   


    你要把所有查询出来的对象放到list中这些对象都存在引用,是不会回收的。除非你吧list=null,这个时候才调用垃圾回收
      

  5.   

    JAVA中低层有一个自带的方法 把SET转换为LIST 因为他们都是COLLECTION集合
    list.addAll(set);大概是这样的
      

  6.   

    你把得到的SET中的数据和BEAN对应一下就OK
      

  7.   

    建议用hibernate..
    它都给你做好了...
      

  8.   

    虽然不是搞java的,但是程序原理基本相同,把对象定义在while之外就ok,否则对象只会重复创建