2010-09-15 10 views
3

У меня есть веб-приложение, которое реализовано с использованием java, jsp, сервлетов. всякий раз, когда у меня есть обновления в таблице базы данных, архаист в моем DAO должен быть обновлен. есть ли лучшие решения.вопросы по обновлению базы данных

Solutions

  1. создать поток в боб и запросов к базе данных, если обновления найдены, то заселить ArrayList.
  2. от клиента отправьте запрос ajax с использованием концепции опроса.

любезно дайте мне знать решения, даже если это возможно, используя любой каркас.

ответ

1

Arraylist в вашем DAO? Это действительно не так. Сам класс DAO не должен содержать никаких данных. Вы также не должны хранить данные в сеансе, но просто позволяйте клиенту загружать его при каждом новом HTTP-запросе. Любые свингеры производительности, с которыми вы сталкиваетесь, должны быть решены с использованием пула соединений и, если необходимо, кеша второго уровня.

Что касается инициирования того или иного обновления, существует несколько способов достижения этого. Репопуляция «arraylist» на стороне сервера делает по крайней мере никакого смысла. Запрос должен поступать с клиентской стороны. Опрос Ajax действительно является одним из лучших способов. Другой способ - просто без проблем обновлять страницу JSP с интервалами (например, один раз в минуту) с использованием заголовка <meta http-equiv="refresh" content="60">, чтобы он повторно запрашивал данные из базы данных. Это самый простой, но наименее удобный для пользователя.

Что касается фреймворков, я бы предложил jQuery и/или JSF для этого.

1

Итак, в первую очередь, по соглашению с BalusC вы действительно не должны хранить данные в DAO! Это DAO, и основная цель этого класса заключается в том, чтобы запросить базу данных для извлечения этих данных, понимание этой концепции поможет вам значительно разобраться в том, как внедрять обновления. Что касается обновлений, вам нужно подумать о том, как будет работать ваше приложение, будут частые обновления базы данных, которые пользователь должен увидеть как табло, поэтому нужно было бы полужизни для этого, возможно, обновление потока должно выполняться, если в java или при использовании сервлетов jsp вышеупомянутый метод будет хорошим компромиссом. Если ваше приложение управляется пользователем, я бы предложил получить данные о первом запросе пользователей, а затем не повторять, если пользователь не просмотрит эту страницу. «Мне нужно какое-то дополнительное кодирование, поскольку, как я полагаю, для вас достаточно вашей настройки.

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

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

+0

спасибо за ответ. я не мог понять следующие строки в потоке обновления и выше: «подумайте о том, как будет работать ваше приложение, будут частые обновления базы данных, которые пользователь должен видеть как табло, поэтому для этого нужно было бы полуживо жить возможно, поток обновлений должен запускаться, если в java или если используется сервлет jsp, этот метод будет хорошим компромиссом « –

+1

Да, так что в основном я имею в виду, что если ваше приложение предназначено для отображения данных в реальном времени, и обязательно будет жизненно важные изменения в данных, которые пользователь должен увидеть, и обновление потока было бы необходимо, иначе было бы намного проще выполнить обновление на основе запросов, надеюсь, это помогает Сурешу. Спасибо Chris – Chris

+0

sem live: когда вы скажете обновление потока на java или jsp, как клиент увидит последние данные. I означает логику кода. –

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

  • Нет связанных вопросов^_^