JAVA2011.11.09 17:19
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>
<끝>


결과




 
Posted by 하품 - yawn 하품 - yawn