Как сортировать записи в БД?
Java-приложение на стеке Hibernate, Spring MVC.
Есть пользователь, у которого есть список задач. Например:
Покушать
Убраться
Выгулять собаку
Купить еды
Почистить зубы
Мне необходимо сделать настраиваемую сортировку этих событий. Наверху самые приоритетные задачи, внизу второстепенные. Пользователь должен иметь возможность провести следующие операции с каждой задачей:
- Поднять на 1 наверх
- Поднять на самых верх
- Опустить на 1 вниз
- Опустить в самый низ
Изначально я планировал использовать специальное сортировочное число. То есть сделать вот так:
Покушать 500
Убраться 400
Выгулять собаку 300
Купить еды 200
Почистить зубы 100
Но такой подход создаёт очень много телодвижений. В частности, чтобы опустить запись на 1, мне придётся считывать весь список, находить соседнюю запись, вытаскивать её сортировочное число, менять местами сортировочное число в опускаемой записи с числом из её соседки, а потом записывать всё это обратно.
Существует ли какой-то более адекватный альтернативный вариант? Возможно, существуют библиотеки для облегчения сортировки?
Ответы (1 шт):
dbFuelbase = new Fuelbase(getApplicationContext());
database = dbFuelbase.getWritableDatabase();
cursor = database.query(Fuelbase.TABLE_FUEL, null, selection, null, null, null, "fuel_probeg DESC");
Обратите внимание на последнюю часть чтения базы. fuel_probeg это имя столбца, который вы сортируете. DESC или ASC это уменьшение или возрастание. И получаете таблицу, сортированную по этому столбцу. selection это у меня выборка данных. Думаю вам тоже пригодится. Изучите запрос чтения данных. Литературы много.
Если у вас нет базы данных, сделайте её. Это облегчит вашу задачу