3000条不多啊,用PrepareStatement吧

解决方案 »

  1.   

    现在情况是这样的,我要修改的是一个数据表中(也可能是多个)的数据,但是这些操作是利用了EJB技术的,是在使用CMP的create来实现新加入一个值到某个应用中或者,这样我在使用的时候就直接调用了在Ejb中的方法,但是这样这个方法位于for之中,从而导致了速度内存的大量利用,也不知道Server的原因,为什么内存不能及时的回收。
       for(){        EJBMethod.New(InfoClass bject)...
        }
      

  2.   

    for(){..
    这样是死循环了啊
      

  3.   

    for(){        EJBMethod.New(InfoClass bject)...
        }
    我觉得你这样写如果有3000次不是就要创建30000次吗,那效率我想肯定高不了
    能不能在for的外部EJBMethod.New(InfoClass bject)...
    for()只是给里面负值和执行跟新;
    我是初学者,对EJB不懂,希望大哥多指点
    我一般是这样写
    preparedStatement = connection.prepareStatement("update t_test set a=? ....where a=?");
    for(int i=0; i<3000; i++)
    {
       preparedStatement.setString(1,"");
       ........
       ........
     preparedStatement.executeUpdate();
    }
      

  4.   

    for(int i=0; i<3000; i++)
    {
       preparedStatement = connection.prepareStatement("update t_test set a=? ....where a=?");
       preparedStatement.setString(1,"");
       preparedStatement.executeUpdate();
       preparedStatement = nulll;   ///////////////这样就不会出现内存问题了
    }
      

  5.   

    我觉得楼上这样写的话还是需要申明3000的preparedStatement 根本不能体现预编译SQL语句的效果我觉得不大对.
    初学java ,个人意见
      

  6.   

    cayu的写法是有点问题。用addbatch()比较好。
      

  7.   

    我们也是再用ejb技术,但批量的大数据修改还是直接用jdbc直接连数据库完成!