Там будет до 100k сущности в БД SQLite с следующей структурой:вставки уникальные объекты к БД SQLite
- ID (числовой, ПК)
- КЛЮЧ (Varchar, уникально/PK)
- Другие поля, в основном varchars
У меня есть список около 100-1k объектов. Я хочу добавить в БД только те объекты, KEY которых нет в БД и показать список добавленных.
Пример
В качестве соответствующего примера можно рассмотреть что-то вроде этого: библиотека с книгами, как юридические лица. Каждая книга имеет глобальный уникальный номер ISBN (KEY) и уникальный идентификатор (ID) в каталоге библиотеки.
Некоторые люди приносят в библиотеку множество книг. Библиотека проверяет книги ISBN в каталоге, берет «новые» книги и шоу в список избранных книг.
Некоторые мысли, как это может быть достигнуто:
1) выбрать все ключи из БД, положить их в [хэш] набор в цикле проверить, что ключ от новых сущностей не существует в наборе.
2), как # 1, но вместо выбора всех клавиш, выбрать только ключи, которые присутствуют как в БД и список
3), в контрольной цикл существования объекта с дополнительным запросом на выборку
4) позволяют ограничения в БД, проверки существование за счет исключения отлова
Все они имеют свои собственные недостатки, я полагаю. Можете ли вы предложить что-то лучше?
На данный момент я прошу в основном о «лучших практиках», я считаю, что любой из подходов будет работать для моего случая без огромных проблем с производительностью (никаких реальных тестов на данный момент, я просто на этапе анализа), но как лучше ли это сделать?
Код будет на Java, я планирую использовать простые DAO с JDBC, но если кто-то предложит Hibernate в качестве альтернативного подхода, я передумаю свои мысли.