2016-03-17 5 views
0

У меня есть список элементов/объектов, которые мне нужно вставить/обновить в таблицу mysql. Каждый элемент в списке - строка в таблице. Я хочу вставить, если элемент не существует в таблице. Я хочу обновить, если элемент существует в таблице. Я хочу удалить строку в таблице, если ее нет в моем списке.mysql insert/update/delete с помощью jdbctemplate

Поэтому я могу сначала удалить все соответствующие строки в таблице, а затем вставить все элементы в свой список. OR Сначала выберите все релевантные элементы, выведите в код Java, что нужно вставить/обновить/удалить и выполнить соответствующие запросы. Каков наилучший способ достичь этого. Я использую Spring jdbctemplate для этого. Благодаря!

ответ

0

1) Список нагрузки всех идентификаторов записей из БД (DB IDs list)

2) из ​​DB IDs list идентификаторов фильтров, которые не представлены в вашем input list, удалить строки с такими идентификаторами из БД (delete from Table WHERE id IN :list)

3) фильтровать идентификаторы из вашего input list, которые не могут быть найдены в DB IDs list - вставить элементы с этими идентификаторами из input list в БД

4) фильтр DB IDs, которые могут быть найдены в вашем input list (пересечение двух списков по значению ID), обновить строки в БД, которые имеют такие идентификаторы со значениями от input list

-1

Я могу помочь вам с некоторыми запросами, этот пример без автоматического увеличения. идентификатор уникальный ключ

ВСТАВЬТЕ

INSERT INTO users (id, surname) VALUES (?,?)

UPDATE

UPDATE users SET surname = ? WHERE id = ?

ВСТАВИТЬ, если не существует:

INSERT INTO users (id, surname) VALUES (?,?) ON DUPLICATE KEY UPDATE id = id

+0

Tha Я уже упоминал в вопросе. Как насчет сценария, где мне нужно удалить, если он существует в таблице, но не в моем списке? – kriver

+0

В тот момент, когда вы удаляете какой-либо элемент из своего списка, вы должны удалить его из таблицы. –

Смежные вопросы