powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сортировка, фильтрация, постраничная загрузка в web-приложении
5 сообщений из 5, страница 1 из 1
Сортировка, фильтрация, постраничная загрузка в web-приложении
    #34494507
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!
Помогите, пожалуйста советом. Я еще новичок в web-программировании, поэтому сильно не пинайте.
Ситуация следующая. Пишу основанное на сервлетах web-приложение в IBM Rational 6.0. Выбрана СУБД DB2. Структура базы такова - таблица-родитель и несколько таблиц-детей. На каждую таблицу создан класс, свойства которого соответствуют полям таблицы, а методы позволяют с ней работать. Операции основаны на SQL-скриптах. Например, метод readAll соединяется с базой и запускает простой скрипт "SELECT * FROM "+authId+".PERSONS", а затем результаты выборки запихивает в коллекцию. Эта коллекция и отображается в таблице одной из JSP-страниц. Остальные методы работают аналогично - соединяются, подготавливают скрипт и запускают его. Помоему, такой подход называется MVC, если не ошибаюсь.
И тут встал вопрос о наболевшем. Как правильно реализовать постраничную загрузку данных (таблица-родитель может содержать немало записей), сортировку по столбцам в таблице JSP и фильтр данных?
Есть некоторые соображения. Поскольку таблицы-дети не содержат большого количества записей (в моем случае), то постраничная загрузка там не нужна и сортировку данных можно выполнить используя java.util.Collections. Это же для таблицы-родителя, вероятно, нужно реализовать через соответствующие SQL-скрипты. Т.е. для сортировки использовать метод класса, который бы извлекал коллекцию записей с помощью скрипта "... ORDER BY ...", а для фильтра - с помощью скрипта "... WHERE ...". Тогда какой скрипт использовать для постраничной загрузки? В такой реализации получаем, что при каждой операции пользователя (сортировка, фильтр, и т.д.), будет обращение к базе.

Вообще, в правильном ли направлении я мыслю? Помогите советом, или дайте ссылку на информацию.

Заранее благодарен
С уважением, Семен Попов
...
Рейтинг: 0 / 0
Сортировка, фильтрация, постраничная загрузка в web-приложении
    #34495059
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторсортировку данных можно выполнить используя java.util.Collections
фу ...

тепрь о pagingе
из вот этого
Код: plaintext
select distinct * from foos
делаем вот это (DB2 specific)
Код: plaintext
select * from ( select rownumber() over() as rownumber_, row_.* from ( select distinct * from foos ) as row_ ) as temp_ where rownumber_ between ?+1 and ?

в этот же select можно добавить count(*) что бы избежать второго запроса для расчёта кол-ва страниц
(хотя я делаю по другому)

сортировка при pagingе в любом случае перезапрос.

вам может подойт вариант с первоначальной выборкой всех ID, и последующе выборкой записей по страницам
...
Рейтинг: 0 / 0
Сортировка, фильтрация, постраничная загрузка в web-приложении
    #34495259
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expp авторсортировку данных можно выполнить используя java.util.Collectionsфу ...
А что тут не так? По-моему в этом же форуме я видел такие предложения.
exppтепрь о pagingе
Спасибо, попробую. Нумерация страниц начинается с 1? Т.е. для первой страницы скрипт будет таким "... as temp_ where rownumber_ between 2 and 1"? А задавать максимальное количество записей на странице с помощью такого скрипта можно?
exppв этот же select можно добавить count(*) что бы избежать второго запроса для расчёта кол-ва страниц
А как будет выглядеть скрипт?
exppвам может подойт вариант с первоначальной выборкой всех ID, и последующе выборкой записей по страницам
Если я правильно понял, разбивать на страницы, используя интервалы ID записи. В первую страницу записи с ID в интервале от 1 до 100, во вторую - от 101 до 200 и т.д. Так?
...
Рейтинг: 0 / 0
Сортировка, фильтрация, постраничная загрузка в web-приложении
    #34495735
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Semen Popov
А что тут не так? По-моему в этом же форуме я видел такие предложения.

не аргумент
Semen Popov
Спасибо, попробую. Нумерация страниц начинается с 1? Т.е. для первой страницы скрипт будет таким "... as temp_ where rownumber_ between 2 and 1"? А задавать максимальное количество записей на странице с помощью такого скрипта можно?

нет
rownumber_ between - это как и следовало подозревать диапазон номеров строк
и почитайте доки ....
Semen Popov
А как будет выглядеть скрипт?

он будет выглядеть клёво
Semen PopovЕсли я правильно понял, разбивать на страницы, используя интервалы ID записи. В первую страницу записи с ID в интервале от 1 до 100, во вторую - от 101 до 200 и т.д. Так?
правильно
...
Рейтинг: 0 / 0
Сортировка, фильтрация, постраничная загрузка в web-приложении
    #34495842
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Не так часто с такими скриптами работаю, поэтому сразу не врубился. Я попробовал - действительно работает. Будем рыть в этом направлении.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сортировка, фильтрация, постраничная загрузка в web-приложении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]