2013-08-21 101 views
-1

Hy!我正在使用我的Java MySql應用程序,並且需要將關於存儲在我的數據庫上的膳食數據保存在服務器上,以便稍後將其顯示在組合框中。用戶將在組合框中選擇他想要的膳食,當他按下「確認」按鈕時,它將執行關於他的訂單的查詢。 因此,基本上,我的服務器數據庫表中的每餐(行)由id_category(id_kategorija),id_meal(id_jela),name_of_meal(naziv_jela)組成。我應該使用HashMap嗎?如果可以做到,如何將所有數據保存在一個HashMap中,以便稍後使用該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是一個字典(每個鍵一個值)。爲什麼不用List來代替,因爲這是一個組合框需要的東西?另外,尊重Java命名約定。 –

回答

0

我可以建議你有一個小的類來保存所有3個值從數據庫,並根據您的查詢將對象放入該類別中的對象id_jelaid_kategorija

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

,當你從數據庫中讀取數據,使物體以mealStruct類,並把它放在針對您的需要ID的地圖。

//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>();