Я работаю с новой для меня кодовой базой, которая использует iBatis.
Мне нужно обновить или добавить существующую таблицу, и она может включать более 20 000 записей.
Процесс будет выполняться один раз в день и выполняться ночью.
Я получаю данные от вызова веб-служб. Я планирую получить данные, затем заполнить один объект типа модели для каждой записи и передать каждый объект типа модели какому-либо методу, который будет считывать данные в объекте, и обновлять / вставлять данные в таблицу.
Пример:
ArrayList records= new ArrayList();
Foo foo= new Foo();
foo.setFirstName("Homer");
foo.setLastName("Simpson");
records.add(foo);
//make more Foo objects, and put in ArrayList.
updateOrInsert(records); //this method then iterates over the list and calls some method that does the updating/inserting
Мой главный вопрос - как обрабатывать все обновления / вставки как транзакции. Если система выйдет из строя до того, как все записи будут прочитаны для обновления / вставки таблицы, мне нужно знать, поэтому я могу вернуться к вызову веб-служб и повторить попытку, когда система в порядке.
Я использую Java 1.4, а БД - Oracle.