我想做的事,
有一个List<User> userList,大约1000个User。需要从数据库拿到1000次 sequence id设置到UserId中,然后把User对象数据存到数据库中。这样会非常的耗时。保存后我还要用User的Id做其他的事。问题是如何可以快速保存数据到数据库?

解决方案 »

  1.   

     关键是Oracle 必须先要从数据库中取出sequenceId,而且必须一个一个取。
    然后把seqId放到UserId中
      

  2.   

    http://blog.csdn.net/java2000_net/article/details/2063342参看我的博客吧,很早以前的
      

  3.   

    明天我去公司试一下,不知道Oracle 可不可以拿到 id
      

  4.   

    看你是如果批量插入的
    一种方法,可以在sql里加序列,如user_seq.nextval(适合单条insert)
    一种方法,写个触发器,如
    create or replace trigger tr_user before insert on t_user for each row
    begin
    select user_seq.nextval into :new.id from dual;
    end tr_user;
      

  5.   

    我现在是批量插入数据,使用的是PrepareStatement, 然后sql = "insert user values(user_sql.nextval,?,?)"问题是我想要拿到刚刚插入的所有User的Id,因为同时要把Id插入其他表中。真心变态我现在使用的方法是,存之前拿到seqId = 1201;设置第一个UserId为1201然后循环设置到User中.但是我担心如果有两个用户同时插入数据,那就完了。怎么办啊?