2013-08-21 2 views
-1

Hy! Я работаю над своим Java MySql-приложением, и мне нужно сохранить данные о еде, которые хранятся в моей базе данных на сервере, поэтому я могу позже отобразить ее в combobox. Пользователь будет выбирать, какую еду он хочет в combo-box, и когда он нажимает кнопку «подтвердить», он выполнит запрос о своем заказе. Итак, каждая еда (строка) в моей таблице базы данных сервера состоит из id_category (id_kategorija), id_meal (id_jela), name_of_meal (naziv_jela). Должен ли я использовать HashMap для этого? Если это возможно, как сохранить все эти данные в одной Hash-Map, чтобы впоследствии я мог легко сделать запрос с помощью этой HashMap?Java MySql HashMap для сохранения 3 значений

Вот фотография моей таблицы базы данных для приема пищи:

enter image description here

Вот мой код:

String queryZaJela; 
Map <Integer,String>PopisJela = new HashMap<Integer, String>(); 
try { 

     queryZaJela="SELECT id_kategorija, naziv_hrane FROM `naziv_jela`"; 

     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://" 
       + "localhost:3306/room_service", "root", ""); 
     Statement Stat = (Statement) con.createStatement(); 
     ResultSet Rez = Stat.executeQuery(queryZaJela); 

     while (Rez.next()) { 

      PopisJela.put(Rez.getInt("id_kategorija"), Rez.getString("naziv_hrane")); 
     } 
     PopisJela.put(0,"Select"); 

      Rez.close(); 
      Stat.close(); 
      con.close(); 

    } catch (Exception e) { 
     System.out.println(e); 
    } 
+3

В поле со списком необходим список элементов для отображения. HashMap - это словарь (одно значение для каждого ключа). Почему бы вам не использовать список вместо этого, так как это то, что нужно для combobox? Также соблюдайте соглашения об именах Java. –

ответ

0

Я могу предложить вам иметь небольшой класс, чтобы сохранить все 3 значения из базы данных и поместить объекты в этот класс против id_jela или id_kategorija в соответствии с вашим запросом в будущем.

public class mealStruct { 
    public int id_kategorija; 
    public int id_jela; 
    public string naziv_hrane; 
} 

и при чтении данных из базы данных, сделать объект класса mealStruct и поместить его в карту с идентификатором вашей потребности.

//here is the HashMap of id_kategorija/id_jela and mealStruct. 
//Keep filling hashMap with id and the object. when the user selects a meal from combo, 
//get the id and access the object from mealStruct and get all 3 values to use in query. 
<Integer,String>PopisJela = new HashMap<Integer, mealStruct>(); 
Смежные вопросы