2015-03-18 4 views
1

Я использую следующий код для вставки данных в таблицу.Идентифицировать отказ executeBatch() в JDBC

test_conn.setAutoCommit(false); 
stmt = test_conn.prepareStatement("INSERT INTO ..."); 

while(RSet.next()){ 
    for(int i = 1; i <= columnCount; i++){ 
     stmt.setString(i, RSet.getString(i)); 
    } 
    stmt.addBatch(); 
} 

stmt.executeBatch(); 
test_conn.commit(); 

другие методы обработки происходит только все вышеуказанные строки успешно вставлены ....

, когда я вставить в таблицу с использованием executeBatch(), если исключение SQL или ошибка происходит в Вставка, является возможным find Вставка какой записи выбрала исключение?

ответ

0

try-catchstmt.executeBatch() позвонить и проверить детали в исключении. Пакетное выполнение остановится при первой ошибке, которая произойдет.

+2

Да. Я знаю, что это прекратится, когда пакет не удастся. Я хочу знать, как получить запись, которая не удалась. –

+0

Я думаю, вы не можете - единственное, что можно надеяться, что кроме того, у него будет какая-то информация о доверии со стороны РСУБД. Это похоже на то, что вы выполнили бы несколько SQL, разделенных с. В случае ошибки он не покажет вам, какая инструкция не выполнена. – Antoniossss

Смежные вопросы