2011-02-02 19 views
-1

プリペアドステートメントのjdbcバッチを使用してデータベーステーブルに132,000レコードを挿入しています。私が直面している問題は、すべてのレコードがテーブルに挿入されていないことだけですレコード1444が挿入されます。jdbcバッチで100,000レコードの更新を処理します。

try{ 
     StringBuffer insert = new StringBuffer("INSERT INTO mytable (field1,field2, 
,field3,field 4) VALUES (?, ?, ?, ?)"); 

      pstmt = conn.prepareStatement(insert.toString()); 
      Iterator cptIcd9Iterator = cptIcd9List.iterator();  
      while(cptIcd9Iterator.hasNext()){ 
       cptIcd9VO = (CptIcd9VO)cptIcd9Iterator.next();    
       count++; 
       pstmt.setString(1, "field1"); 
       pstmt.setString(2, "field2"); 
       pstmt.setString(3, "field3"); 
       pstmt.setInt(4, 4); 
       pstmt.addBatch(); 
      } 
      updateCounts = pstmt.executeBatch(); 
    } 
    catch (Exception e) { 
     logger.error(e); 
    } 

誰でも手伝ってもらえますか?

+0

あなたは十分な情報を提供していませんが、途中でエラーが発生しますか? – Matt

+0

いいえ、間違いはありません。例外やエラーがなく正常に終了します – Zeeshan

+0

最後にupdateCountsには何がありますか?このフラグは1444行だけで成功しますか? – Matt

答えて

2

一度にすべてを挿入することはできません。段階的に行う必要があります。

this SO postを読んでください。

関連する問題