Доступ к базе данных несколько раз - PullRequest
0 голосов
/ 30 августа 2011

Я работаю над решением из нижеприведенных вопросов, но не смог найти какой-либо наилучшей практики / инструмента для этого. Для пакета запросов (скажем, 5000 уникальных идентификаторов и записей), полученных в веб-сервисе, он должен извлечь строки для этих уникальных идентификаторов в базе данных и сохранить их в буфере (или кэше) и сравнить их с записями, полученными в веб-сервисе. Если есть изменение для определенных данных (скажем, столбца), которые будут обновлены в таблице для этого уникального идентификатора. И, в свою очередь, дочерние таблицы этой таблицы также оказываются затронутыми. Например, если кто-то изменит номер модели своего ноутбука и страну, номер модели будет обновлен в таблице, а значение страны - в другой таблице. Точно так же он продолжает получать доступ к нескольким таблицам за короткое время. Максимальное количество записей, приходящих на вызов веб-службы, может достигать 70 КБ за один вызов в час.

У меня нет другого выбора, кроме как реализовать его в Java. Есть ли хорошая практика для реализации этого, или это может быть достигнуто с помощью каких-либо инструментов Java с открытым исходным кодом. Пожалуйста, предложите. Спасибо.

Ответы [ 3 ]

0 голосов
/ 30 августа 2011

JDBC - это API, используемый для доступа к реляционной базе данных.Полезные советы по производительности и безопасности:

  • используйте подготовленные операторы
  • используйте where ... in () запросов для загрузки сразу нескольких строк, но помните об ограничении количества значений в in предложение (1000 макс. в Oracle)
  • использовать пакетные операторы для выполнения обновлений вместо выполнения каждого обновления отдельно (см. http://download.oracle.com/javase/1.3/docs/guide/jdbc/spec2/jdbc2.1.frame6.html)

См. http://download.oracle.com/javase/tutorial/jdbc/учебник по JDBC.

0 голосов
/ 30 августа 2011

Звучит не так сложно. Конечно, вы должны знать (или учиться):

  • SQL
  • JDBC

Затем вы можете просмотреть запись данных веб-службы по записи и для каждой записи сделать следующее:

fetch corresponding database record
for each field in record
    if updated
        execute corresponding update SQL statement
commit // every so many records

70K записей в час не должно быть ни малейшей проблемой для достойной СУРБД

0 голосов
/ 30 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...