![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| JVM |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 30.10.2006 Репутация: нет Всего: 5 |
Есть база данных с табличкой пользоватлей. Надо в GUI вывести список пользователей отсортированный по ФИО. Далее будет нажиматься строка с пользователем и должна выводиться информация о пользователе.
Подскажите: 1. как хранить список пользователей полученных из базы? Насколько я понимаю надо хранить ФИО и ID(пользователя) в какой-нибудь коллекции? 2. нужно ли писать свои методы сортировки или есть что-то готовое? |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Странные у тебя какие-то вопросы.
Делаешь класс пользователя со всеми атрибутами и хранишь где хочешь, хоть в коллекции, хоть в Map каком-нибудь. Используя Map можно найти пользователя по идентификатору или имени. Есть конструкции 'select ... from ... order by ...' у любой СУБД. Сортировкой в Java будет медленнее. |
|||
|
||||
| JVM |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 30.10.2006 Репутация: нет Всего: 5 |
Странные потому что нет понимания как решить проблему. Правильно ли я понял, что надо создать клас пользователя и хранить в объекте этого класса все данные о пользователе? Мне кажется, что на это будет тратиться много памяти и лучше хранить в объекте ID и ФИО(правда немного будет медленнее) и потом по ID получать остальную информацию о пользователе. |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Можно и так. Если пользователей мало, то можно и все в памяти хранить. Все зависит от конкретной задачи, а у тебя здесь нет ее постановки. В первом посте ни слова о том, что есть еще что-то кроме идентификатора и имени. Кроме того, неизвестно сколько всего пользователей планируется. Если их 5 штук, то вообще СУБД использовать бессмысленно. Если пользователей планируется тысячи, то тогда конечно нужно будет учитывать, что под пользовательскую информацию будет уходить много памяти. В общем, продумай задачу, реши что же тебе от этих пользователей нужно и сколько их будет и исходя из этих посылок уже можно решить как будет организована система управления пользователями. |
|||
|
||||
| JUncle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 6.4.2006 Где: Казань, РФ Репутация: нет Всего: 1 |
Это конечно зависит от размеров выборки, но сдается мне, что такие множественные обращения ни к чему хорошему не приведут. И вообще, все равно эта информация, выведенная на экран будет где-то (в куче естественно) храниться. Вот компоненту JLabel, к примеру, абсолютно фиолетово, содержит ли он в себе единственную в этой JVM ссылку на String или делит ее с объектом класса User. Так что никакой экономии не выйдет. И, в зависимости от размеров выборки (если конечно, она не такая маленькая, как уже упоминал tux), ее следует забирать целиком, либо порциями, но никак не по одному. Это сообщение отредактировал(а) JUncle - 20.2.2007, 21:06 --------------------
class JUncle extends Man // singleton{/*...*/} |
|||
|
||||
| hamsterKSU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 401 Регистрация: 20.10.2006 Где: Украина, Херсон Репутация: 1 Всего: 11 |
используй дял отабражения JTable, создай свою модель и работай напоямую сос своей колекцияей воторую ты выбрал из базы. я же не думаю что тебе надо будет выводить прям сразу всех 1000 или скольок там пользователей. но можно решить и такую проблему например читатьб из базы по страницам или по куску определенной длины.
|
|||
|
||||
| JVM |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 30.10.2006 Репутация: нет Всего: 5 |
Вот тема с которой все началось http://forum.vingrad.ru/topic-134993.html в ней конкретная ссылка http://forum.vingrad.ru/index.php?showtopi...t&p=1021406 где Rodman предлагает таблицы, которые надо использовать. Возник еще вопрос. В GUI для списка пользователей использую следующее
И все бы было хорошо, если бы не присутствовал риск того, что ФИО пользователей могут повторяться, т.е. как я понимаю мне надо где-то хранить ID пользователей. Решение мне видется в следующем. Получая результат запроса(отсортированного как советовал tux) надо использовать тот факт, что списки имеют нумерацию своих элементов и заполнять private ArrayList users ФИО'ми, а ID пользователей сохранять в другом ArrayList IDList. После выделения каког-то пользователя смотрим его номер в списки и далее по этому номеру ищем значение ID в IDList и используем его для получения данных о пользователе из БД. Или есть другой подход? Подскажите. Пользователей у меня будет примерно 100. Каждый пользователь будет иметь некоторую информацю о себе: ФИО, IP, host-name, e-mail(возможно несколько), права и т.д. Тот кто будет использовать это GUI будет смотреть нескольких пользоваателей(думаю мах 5). И у меня возникает вопрос: зачем закачивать груду ненужной информации, которая разбросана по нескольким таблицам? Может лучше будет закачать ID пользователя и ФИО(которое нужно изначально)? |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Зачем такие сложности? Берем Map и делаем тоже самое, только быстро:
Оттуда же можно получить и список ключей и список хранимых значений. |
|||
|
||||
| JVM |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 30.10.2006 Репутация: нет Всего: 5 |
||||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Или я чего-то не понимаю? |
|||
|
||||
| JVM |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 30.10.2006 Репутация: нет Всего: 5 |
tux,
Спасибо!!! |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
||||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |