Обновление / объединение таблицы базы данных SQLite из объектов java

Вот минимальный пример для описания проблемы:

Предположим, что таблица считывается из SQLiteDB и сохраняется в объекте Java Collection

Таблица DB ---> Java Object


idRecord | Data   (table stored at DB)
1         One
2         Two
3         Three
4         Four

И через библиотеку sqlite jdbc :

Map objTable = new HashMap (); //... добавив некоторый материал jdbc, мы получим копию DBTable в objTable

Затем, если объект будет изменен, то есть.

idRecord | Data   (modified table stored at objTable)    
2         Two
4         FourModified
5         Five

(id 1 и 3 были удалены, 2 остаются то же самое, 4 изменено и 5 добавлено)

Объект Java -> Таблица БД (вот вопрос ...)


Как обновить / объединить таблицу объектов с БД?

Почему я хочу объединить, а не просто сохранить объект в таблице ?

Я думаю, что если таблица достаточно велика, то нет смысла записывать все записи, если только некоторые из них были изменены.

  • Удалить всю таблицу DBtable и в (пока что опасном) цикле обойдите объект, чтобы записать новую таблицу.

  • Прочтите DBtable во втором объекте java, а затем сравните оба (с каким-то алгоритмом слияния) и примените действия (ADD, УДАЛИТЬ, ИЗМЕНИТЬ) прямо в БД. (Я бы принял рекомендацию для этого алгоритма сравнения)

  • РЕДАКТИРОВАТЬ: Не создавайте Коллекцию в первую очередь, чтение и запись непосредственно из БД, постоянная передача запросов через JDBC

  • Другой лучший подход

Thanks4Reading

6
задан Hernán Eche 20 July 2011 в 14:42
поделиться