2011-02-02 2 views
-1

Я вставляю 132 000 записей в таблицу базы данных, используя партию jdbc prepated statement. Проблема, с которой я столкнулся, - это все записи, которые не вставлены в таблицу, только вставляются записи 1444.Обработка обновления 100 000 записей в пакете jdbc

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.