Как узнать, что все записи вставлены одна запись, которая не вставлена в пакетную вставку

1

Я вставляю несколько списков студентов, как приведенный ниже код

int count = 0;
for (Student st :StudentList) {
    ps.setString(1, l.getId());
    ps.setString(2, l.getName());
    ps.setString(3, l.getRollNo());
    ps.addBatch();
    if (++count % 100 == 0) {
        ps.executeBatch();
    }
}
ps.executeBatch();

Как я могу узнать, что все записи вставлены успешно. Если нет, какая запись из списка не вставлена /не вставлена.

  • 0
    Взгляните на JavaDocs для Statement#executeBatch
  • 0
    Этот вопрос кажется не по теме, потому что ответ можно легко получить, прочитав JavaDocs для Statement#executeBatch
Теги:
jdbc

2 ответа

3
Лучший ответ

executeBatch() возвращает массив (int[]) счетчиков обновлений, содержащих один элемент для каждой команды в пакете. Итак, array[i] <= 0 означает, что i-я команда не влияет на базу данных. Если команда я является запросом INSERT, значит, она не вставлена.

Для более подробной информации о содержимом этого массива вы можете посмотреть Javadoc executeBatch.

0

Это из javadoc executeBatch:

Элементы int возвращаемого массива упорядочены так, чтобы они соответствовали командам в партии, которые упорядочены в соответствии с порядком, в котором они были добавлены в пакет.

Элементы массива, возвращаемые методом executeBatch, могут быть следующими:

Число, большее или равное нулю - указывает, что команда была успешно обработана и является счетчиком обновления, указывающим количество строк в базе данных, на которые повлияло выполнение команды

Ещё вопросы

Сообщество Overcoder
Наверх
Меню