본문 바로가기

.주제별/Java

iBATIS) count함수을 통해서 int형을 받아오다가..

****문제 : iBATIS 에서 count() 을 통해서 int 형을 받아오려 함.

  ### SQL Map 파일은 다음과 같다.
     <resultMap id="result" class="java.util.HashMap">
        <result property="key" column="KEYS"/>
        <result property="value" column="VALUES"/>
    </resultMap>

    ....
    select count(VALUE) as VALUES
    ...

  ### 이를 받아와서 처리한 DAO 단
  List list = getSqlMapClientTemplate().queryForList("Statement.statement01", map);
  Iterator iter = rList.iterator();
  while(iter.hasNext()){
    HashMap map = (HashMap)iter.next();
    int value = ((Integer)map.get("value")).intValue(); <----- (X)
  }


**** 해결
From
   int value = ((Integer)map.get("value")).intValue(); <----- XXXXXXXXXXXXX
To
  int value = ((BigDecimal)map.get("value")).intValue();

 

문제는 iBATIS+Oracle 에서 BigDecimal로 리턴하여서,

CAST Exception이 일어났었다.

Exception이 일어나면, getClass로 확인해보자.