Iterator iterator=s.iterator();
   while(iterator.hasNext())
   {
   
    //System.out.println(iterator.next());
    ps.setObject(1, iterator.next());
ps.setString(2, "0");
    
ps.addBatch();
   }
   ps.executeBatch();
如果用插入5万的可以,但是如果50万就溢出

解决方案 »

  1.   

    无语,你不会判断一下啊,每一100条就马上更新啊.Iterator iterator=s.iterator();
    int i=1;
       while(iterator.hasNext())
       {
       
        //System.out.println(iterator.next());
        ps.setObject(1, iterator.next());
    ps.setString(2, "0");
        
    ps.addBatch();
    i++;
    if(i%100==0)
    {
       ps.executeBatch();
     }
       }
       ps.executeBatch();
      

  2.   

    ps.executeBatch();
    }
    }
    ps.executeBatch();
    要执行两次这个吗
      

  3.   

    因为是要产生的数据是随机数,经过hashset过滤了,需要一次插入,
    我试了一下,可以的大概不到4分钟吧不过不理解为什么要执行两次
    ps.executeBach();
      

  4.   

    怎么提前执行亚,谢谢AWUSOF()
      

  5.   

    i++;
    if(i%100==0)
    {
       ps.executeBatch();
     }
    当i加到变成100的整数们就先执行批量里的东东嘛,如果100太小,你可以改成一千啊,或者其它的数据.
      

  6.   

    "当i加到变成100的整数们就先执行批量里的东东嘛,如果100太小,
    你可以改成一千啊,或者其它的数据"那第二个ps.executeBatch();是执行哪些批量东西那?
      

  7.   

    那第二个ps.executeBatch();是执行哪些批量东西那?因为到最后i不一定就是100的整数倍啊,里边可能还会有些记录没写到数据库,所以最后要执行一次啊