본문 바로가기

Programming/iBatis

QueryForList와 QueryForMap의 차이 예

queryForList와 queryForMap의 차이점

<table>

 

<query>

<resultMap id="user.select.result" class="java.util.HashMap">

<result property="id" column="ID"/>

<result property="name" column="NAME"/>

</resultMap>

<select id="user.select" parameterClass="map" resultMap="user.select.result">

select * from user

</select>

 

1. queyForList 경우

List list = sqlMapClient.queryForList("user.select",map);

결과 :

{id=a,name=aa}

{id=b,name=bb}

{id=c,name=cc}

 

2. queryForMap 경우

Map resultMap = sqlMapClient.queryForMap("user,select",map,"id");

결과 :

a={id=a,name=aa}

b={id=b,name=bb}

c={id=c,name=cc}

 

resultMap 에는 미리 지정한 "id" 에 해당하는 값이 key 로 되고 값이 result 로 지정한 객체가 입력되었음을 알 수 있다.

queryForMap 을 사용한 경우, user 중 id가 "b" 인 행의 name 값을 무엇인가?

System.out.println( resultMap.get("b").get("name") );

만약 List 로 가져왔다면 루핑과 분기문를 써야겠죠.

실제 프로젝트 상에서는 코드테이블을 가져올때 유용합니다.

그룹코드에 해당하는 코드내용들을 조회하여 그 일부 코드를 사용하거나 혹은 전체 코드를 사용할 경우 매우 유용하죠.

 

원본 : http://ssami.tistory.com/250

 

'Programming > iBatis' 카테고리의 다른 글

iBatis - selectKey (자동생성키)  (0) 2012.12.27
iBatis - Iterate  (1) 2012.11.16
QueryForObject, List, Map  (0) 2012.04.09
iBatis - 동적쿼리  (0) 2012.04.06
Mapped Statements  (0) 2012.04.06