Я вставляю несколько списков студентов, как приведенный ниже код
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();
Как я могу узнать, что все записи вставлены успешно. Если нет, какая запись из списка не вставлена /не вставлена.
executeBatch()
возвращает массив (int[]
) счетчиков обновлений, содержащих один элемент для каждой команды в пакете. Итак, array[i] <= 0
означает, что i-я команда не влияет на базу данных. Если команда я является запросом INSERT, значит, она не вставлена.
Для более подробной информации о содержимом этого массива вы можете посмотреть Javadoc executeBatch.
Это из javadoc executeBatch:
Элементы int возвращаемого массива упорядочены так, чтобы они соответствовали командам в партии, которые упорядочены в соответствии с порядком, в котором они были добавлены в пакет.
Элементы массива, возвращаемые методом executeBatch, могут быть следующими:
Число, большее или равное нулю - указывает, что команда была успешно обработана и является счетчиком обновления, указывающим количество строк в базе данных, на которые повлияло выполнение команды
Statement#executeBatch
Statement#executeBatch