Как хранить объекты из базы данных? - PullRequest
3 голосов
/ 08 августа 2011

Я занимаюсь разработкой Java-приложения, которое будет графически изображать и организовывать сотни объектов. Каждый из этих объектов загружается из базы данных SQL для использования в этой программе.

Я планирую сохранить локальную копию всех данных, полученную через соединение JDBC, а затем отсортировать их локально (вероятно, с Merge Sort, поскольку это мой любимый вариант)

Как бы вы порекомендовали мне хранить данные локально? В идеале было бы очень легко просматривать, сортировать и сравнивать с исходной базой данных.

В настоящее время у меня есть объекты с именем Ideas, которые заполняются из базы данных. Затем, чтобы отобразить их, я создаю такое же количество IdeaGraphics объектов и добавляю их в соответствующие JPanels. Это может быть довольно медленно в разы.

Ответы [ 3 ]

3 голосов
/ 08 августа 2011

Возможно, вы уже сделали это, но в вашем вопросе не так ясно:

Вы можете получить почти столько же экземпляров вашего класса данных (идей), но с графическими классами это не так.Ограничьте количество виджетов и графики до 1.

Создайте свой собственный класс JPanel, предоставьте ему список идей и переопределите метод paintComponent, чтобы нарисовать все элементы в списке.

Если ваша видимая область большая, сделайте двойной буфер.

3 голосов
/ 08 августа 2011

Вы можете реализовать интерфейс Comparator и использовать Collections.sort(), модифицированную сортировку слиянием, как показано здесь .

1 голос
/ 08 августа 2011

Я не согласен с этим, и не очень хорошая идея хранить большое количество данных в локальной памяти, с идеей симулировать превосходный оптимизированный препроцессор из Sql Engine (большинство современных движков), а затем в основном быстрее, чем лучше EndUser PC

и если у вас есть какие-либо разрешения WHATEVER для базы данных, то все еще существуют опции для загрузки данных из DbEngine во встроенную базу данных (в памяти), может быть H2 или JavaDB

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...