본문 바로가기

IT/JAVA&JSP

[JAVA & JSP] ArrayList 안에 HashMap 넣어쓰기(HashMapList??)

ArrayList와 HashMap을 한번에(합쳐서?) 사용하기.

ArrayList<HashMap<String, String>>

형태로 ArrayList를 만들어서 사용하면 된다.


사용 예제>
DB에 저장된 두개의 컬럼을 각각 다른 키값을 갖는 HashMap을 만들어 사용하고 싶다.
사용시 두 해시맵을 동시에 불러오고 싶다(?)

DB에서 값 가져오기. 

 

< 시작>

 

public ArrayList<HashMap<String, String>> getlist(){

 ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String,   

  String>>();

 

  //하나로 만들 arraylist 선언

 try{
    conn = getConnection();//커넥션을 불러오는 사용자 함수.
    Statement stmt = conn.createStatement();
             
    rs = stmt.executeQuery("SELECT CODE, NAME FROM TEST ORDER BY CODE");
   //data를 가져와서.
  while(rs.next()){
    HashMap<String,String> sidmap = new HashMap<String,String>();
    //그때그때 해시맵을 선언해 주어야 함.(키 값이 계속 동일 함으로)
    sidmap.put("code", rs.getString("CODE"));
    sidmap.put("name", rs.getString("NAME"));
    //두개의 키 두개의 값
    list.add(sidmap);//리스트에 추가.
  }                  
    return list;
  }
  catch(Exception e){
      e.printStackTrace();
  }
  finally{
      disConnection();//커넥션 종료하는 사용자 함수.
  }      
  return null;

 

}


DB에서 가져온 리스트를 사용 할때. 

< 시작>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page language="java" import="java.util.*" %><!-- Arraylist와 hashmap을 쓰기위해 -->
<jsp:useBean id="getlist" class="test.list" scope="page" /><!-- 디비에서 값 가져오는 클래스 -->
<%
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
list = getlist.getlist();
%>
<body>
<table>
  <tr>     
    <td class="mx_td">
       <select name="s_id"

          <%              

            for(int i=0; i<list.size(); i++) {%>

  <option value="<%=list.get(i).get("code")%>">

  <%=list.get(i).get("name")%></option>

          <%} %>
       </select>
    </td>    
 </tr>

</table>

</body>

결과


 


출처 - http://notpeelbean.tistory.com/35