Ищете способ сделать простую базу данных или список в Java (более продвинутый, чем HashMap, проще, чем JDBC) - PullRequest
0 голосов
/ 15 декабря 2011

Я довольно новичок в Java, и я пишу программу, которая должна хранить:

  1. Данные клиента
  2. Данные продукта

В отдельных списках.

Я пробовал с HashMap, hashtable, а также ArrayList старого, но он становится очень грязным, когда мне нужно хранить, например, название продукта (Str), продаваяцена (int), цена покупки (int), описание (Str) и тип продукта (булево).Я смотрел на JDBC, но это выглядит очень сложно для настройки, но я попробую либо это, либо java.sql, если нет другого пути.

То, что я ищу, является своего родаHashMap, который позволяет больше «строк».

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Сначала вам нужно решить, действительно ли вам нужна база данных. Если вам нужна база данных и вы не хотите писать весь код JDBC, я советую использовать ORM, такой как Hibernate или EclipseLink, но имейте в виду, что они являются негерметичными абстракциями , и если вы выйдете за пределы В простейших сценариях использования вам нужно знать все, что вам нужно знать о JDBC, а также целый ряд вещей, специфичных для платформы ORM.

Если вы хотите придерживаться структур данных в памяти, посмотрите на коллекции Google Guava, в которых есть ряд структур данных, более сложных, чем простые карты. Но что вы будете делать, когда вам нужно их сохранить? Сериализовать на диск? Это само по себе (потенциально) целый бассейн боли.

Мораль истории: упорство - это тяжелый труд.

2 голосов
/ 15 декабря 2011

Создайте класс, который будет моделировать сущность, которую вы хотите сохранить:

public class Entity {
  private String name;
  private int id;
  private BigDecimal price;

  // Add getters and setters
}

Затем вы можете использовать любую коллекцию для их хранения:

List<Entity> entities = new ArrayList<Entity>();

Вы также можете рассмотретьрешение ORM.Это значительно облегчит работу с базой данных.

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