2013-08-21 2 views
-1

Hy! Java MySql 응용 프로그램을 작성 중이며 서버의 데이터베이스에 저장된 식사에 대한 데이터를 저장해야하므로 나중에 콤보 상자에 표시 할 수 있습니다. 사용자는 콤보 상자에서 원하는 식사를 선택하고 "확인"버튼을 누르면 자신의 주문에 대한 쿼리를 실행합니다. 기본적으로 내 서버 데이터베이스 테이블의 각 식사 (행)는 id_category (id_kategorija), id_meal (id_jela), name_of_meal (naziv_jela)로 구성됩니다. 이것에 HashMap을 사용해야합니까? 가능한 한 모든 데이터를 하나의 해시 맵에 저장하여 나중에 해당 해시 맵을 사용하여 쉽게 쿼리를 만들 수 있습니까? 여기 Java MySql 3 개의 값을 저장하는 HashMap

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_jela 또는 id_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>();