2012-10-30 2 views
4

У меня есть запрос с результатом более 3000 строк. Я использовал итератор для повторения каждой записи. Поэтому я должен уменьшить нагрузку системы, и я полагаю, что лучший способ - использовать разбиение на страницы в jsp. Если у кого-то есть лучшая идея, я был бы рад это услышать. что-то вроде номера выборки или что-то вроде этого. Презентационная технология - стойки. Если вы считаете, что разбиение на страницы является хорошим, пожалуйста, помогите мне.pagination in jsp

+0

Какой у вас конкретный вопрос? –

+1

Чтобы повысить производительность, я настоятельно рекомендую использовать разбиение на страницы на уровне базы данных, если это возможно. –

+3

Взгляните здесь: http://theopentutorials.com/examples/java-ee/jsp/pagination-in-servlet-and-jsp/, который содержит полный пример. –

ответ

1

Подкачка результатов в jsp решила проблему

2

Запрос базы данных в с ограничением, я имею в виду положить предел в запрос, скажем 0 to 50 на первой странице. При запросе первой страницы измените свой предел 0+(50*1) to 50+(50*1), а для n-й страницы это будет 0+(50*n) to 50+(50*n)

+0

Я не знаю, как использовать разбиение на страницы на уровне базы данных? – AFF

+0

Quoi: как я могу использовать ограничение в моем запросе? Возвращает ли результат на разных страницах? – AFF

+1

вам просто нужно улучшить свой запрос. ** SELECT **, что необходимо. –

1

Pagination - хорошая идея. Тем не менее, вы должны помнить, что вам не только нужно заставить его работать, но и вы должны понимать цель.

Реализовать pagination. Но если вы реализуете разбиение на страницы, но все еще получает такое же количество строк, ваша цель побеждена. Вы должны улучшить ваш запрос. Вы должны получить точные количество строк для точное количество записей для отображения на одной странице в вашей разбивке на страницы. Таким образом, как ваш сервер приложений, так и сервер баз данных получат преимущества от вашей реализации.

+0

Это может быть правдой, но это может быть и неправильным. Запрос базы данных, получающий 3000 строк, может быть очень быстрым, особенно если веб-сервер и база данных размещены в памяти, а основная проблема с производительностью может быть связана с переносом этих 3000 строк через Интернет и отображением этих 3000 строк на браузера. –

+0

@JBNizet Вот почему он должен ** запрашивать только то, что необходимо **. если разбиение на страницы составляет 20 записей на страницу, например, с использованием запроса, такого как 'SELECT *, из таблицы, где rownum> 1 и rownum <21;' (например), что будет передано через Интернет, составляет всего 20 строк. Аналогично, отображение этого минимального количества строк не должно быть проблемой. –

+0

Представьте, что мне нужно загрузить все письма, что мне делать? Я думаю, что лучший способ - разбивка на страницы. Потому что я должен загружать все электронные письма, но показывать их на разных страницах. – AFF