Выяснение, какая строка была обновлена ​​/ удалена JDBC (ResultSet) - PullRequest
0 голосов
/ 19 января 2012

Я пишу приложение, которое должно хранить некоторые метаданные о строках базового сервера MySQL (оно связывается с сервером MySQL через драйвер JDBC).

По сути, каждый клиент имеет уникальный идентификатор имое Java-приложение должно хранить для каждой строки uuid последнего клиента, который изменил строку.

Пока что, когда строка вставлена, я выделяю ей слот в таблице метаданных, на которую ссылается ее первичный ключ.

Единственный способ, которым я могу думать о том, чтобы сделать это, состоит в том, чтобы сделать выбор таблицы (с тем же условием, что и при обновлении / удалении), но это означает, что для данного запроса я фактически удваиваю работу,У вас есть идеи получше или вы знаете, как это сделать в JDBC?

Спасибо

1 Ответ

2 голосов
/ 19 января 2012

Существует два подхода к обновлению данных в SQL из Java:

  1. Сохраняйте всю логику в Java, как вы делаете, это делает таблицы простыми и всю вашу логику в коде
  2. Напишите хранимую процедуру в MySQL для выполнения обновлений в других таблицах, когда происходит изменение. Если вы следуете по этому пути, тогда код Java прост, но логика таблиц сложна в SQL

Чего не следует делать, так это разделить разницу и иметь некоторую логику в Java, а другую в SQL. Я рекомендую придерживаться вашего подхода, потому что гораздо сложнее изменить и отладить код хранимой процедуры в SQL, чем в Java.

PS Я сделал это обоими способами, сохранить логику в Java гораздо проще в обслуживании.

...