Java: хранение информации из базы данных. Какие коллекции уместны? - PullRequest
0 голосов
/ 07 июня 2010

Я пишу приложение на Java. Я получаю из базы данных таблицу (клиенты), которая содержит поля, такие как:

имя | фамилия | адрес

Как лучше всего хранить эти данные в моем приложении? Должен ли я создать объект для каждого клиента и сохранить эти объекты в списке или наборе?

Таблица содержит около 100 записей, и она уже отсортирована. Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 07 июня 2010

Самый простой способ - создать класс, содержащий поля, соответствующие столбцам вашей базы данных (имя, фамилия, адрес). Затем, как вы уже сказали сами, создайте экземпляр этого класса для каждой строки в таблице и сохраните их в List.

A Set не будет подходящим, поскольку большинство реализаций Set (например, HashSet) не упорядочены, поэтому, если ваши данные отсортированы, Set не сохранит порядок сортировки. A List заказан.

Чтобы вывести данные из базы данных, вы можете просто запрограммировать их на JDBC самостоятельно, что в данном случае просто: откройте соединение с базой данных, выполните запрос SQL, выполните цикл по строкам в ResultSet создайте объект для каждой строки и заполните его данными, полученными из ResultSet, сохраните созданные объекты в List.

Когда ваша модель данных становится более сложной, чем отдельный класс, возможно, стоит использовать инфраструктуру объектно-реляционного отображения (ORM). Java имеет стандартный API для этого, Java Persistence API (JPA). Hibernate - популярная реализация этого API.

0 голосов
/ 07 июня 2010

Вы должны создать класс для объекта и затем иметь список объектов, каждый из которых соответствует одной записи таблицы.

Если вы собираетесь выполнять такие задачи часто, я бы предложил использовать такой инструмент, как Hibernate, чтобы сделать это простым и автоматизированным, чтобы вам не всегда приходилось вручную создавать и заполнять классы и взаимодействовать с ними. База данных самостоятельно.

0 голосов
/ 07 июня 2010

Хотя Hibernate может быть излишним из-за того, что вы делаете, вы все равно можете проверить это.Если вы собираетесь в конечном итоге делать гораздо больше, чем поиск, возможно, стоит потратить немного времени (это может сэкономить вам кучу работы позже).

В зависимости от того, что вы делаете сзаписи, вы можете оставить их в своем наборе записей, перебирать их и делать с ними все, что вы хотите.Если вам нужно поработать с ними, то да, поместите каждый из них в объект и поместите эти объекты в коллекцию определенного типа (ArrayList сохранит их отсортированными для вас).

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