본문 바로가기

.주제별/Java

iBATIS) queryForMap, queryForList 사용하기

<DB내용> TABLE "table01"

ACCOUNTID GROUPID
samsik01 group01
samsik02 group02
samsik03 group03

1. queryForMap 의 경우

    Map map =

           getSqlMapClientTemplate().queryForMap("Statement.state01", map, "accountId");

   map : Parameter 로 map을 사용하기로 함

2. qeuryForList 의 경우

    List list =

           getSqlMapClientTemplate().queryForList("Statement.state01", map);


SQL Map을 어떻게 구성하냐에 따라 여러가지로 사용할수가 있는데


<resultMap id="result" class="java.util.HashMap">
    <result property="accountId" column="ACCOUNTID"/>
    <result property="groupId" column="GROUPID"/>
</resultMap>


<select id="Statement" parameterClass="map" resultMap="result">
    select *
        from TABLE01
        where /* 여기는 prameter 를 받아서 처리 */
</select>


이는 다음과 같은 결과를 볼수 있다.


## 1의 경우, 3개의 Map element가 생김

key는 accountId 이고, value는 resultMap 에서 구성한 property이다.

samsik01={accountId=samsik01, groupId=group01}
samsik02={accountId=samsik02, groupId=group01}
samsik03={accountId=samsik03, groupId=group01}

## 2의 경우 , 3개의 List element가 생김

{accountId=samsik01, groupId=group01}
{accountId=samsik02, groupId=group01}
{accountId=samsik03, groupId=group01}

[참고]

1. <resultMap id="result" class="java.util.<XX>List">

   이럴때는 가능할까? 또 어떻게 사용할까?