2015-02-04 1 views
0

Выполнение партии Mysql может вызывать ошибку и откатывать обновленные строки. Но мне нужно обновить пакет с этой ошибкой. т.е. если некоторые строки не могут обновляться, обновление этой строки должно игнорироваться, а оставшиеся должны обновляться.Как выполнить пакетное обновление в mysql с исключением в java?

String insertTableSQL = "INSERT INTO DBUSER" 
       + "(USER_ID, USERNAME) VALUES" 
       + "(?,?)"; 
     PreparedStatement preparedStatement = dbConnection.prepareStatement(insertTableSQL); 
     for(int i=0;i<10;i++) { 
      preparedStatement.setInt(1, i); 
      preparedStatement.setString(2, "number " + i); 
      preparedStatement.addBatch(); 
     } 
     preparedStatement.setInt(1,1); 
     preparedStatement.setString(2, "number 1"); 
     preparedStatement.addBatch(); 
     preparedStatement.setInt(1,12); 
     preparedStatement.setString(2, "number 12"); 
     // execute insert SQL stetement 
     preparedStatement .executeBatch(); 

В приведенном выше коде произошло исключение первичного ключа. Но я хочу игнорировать эту вставку и продолжить дальнейшее выполнение. А также мне нужна неудачная вставка.

+0

Если мое решение не работает, пожалуйста, добавьте сообщение об ошибке. – Jens

ответ

0

Вы пропустите пробелы в своем заявлении:

String insertTableSQL = "INSERT INTO DBUSER " + "(USER_ID, USERNAME) VALUES " + "(?,?)"; 
              ^^        ^^ 
Смежные вопросы