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 경우
결과 :
{id=a,name=aa}
{id=b,name=bb}
{id=c,name=cc}
2. queryForMap 경우
결과 :
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 |