spring DAO에서 Select 쿼리를 할때 RowMapper클래스를 사용하면 inner클래스가 생성되는게 보기 좋지 않아 저는 이렇게 사용하고 있습니다.
이외의 경우는 API를 찾아보시길...
VO클래스에 대응하는 리스트 쿼리
--> query(sql, object[], new BeanRowMapper(VO.class)); // BeanRowMapper클래스는 제 블로그에서 다루었습니다.
--> 리턴은 List로 받는다.
VO클래스에 대응하는 Object 쿼리
-->queryForObject(sql, object[], new BeanRowMapper(VO.class));
-->리턴은 한개의 VO Object
한개의 String 쿼리
--> queryForObject(sql, object[], String.class);
--> 리턴은 String으로 받는다.
한개의 Int형을 쿼리
--> queryForInt(sql, object[]);
--> return은 Integer형으로 받는다.
싱글Row을 쿼리
--> queryForMap(sql, object[]);
--> return은 Map으로 받는다.
--> Map의 키값은 해당 Row의 컬럼 이름이 된다.)
다중Row를 쿼리
--> queryForList(sql, object[])
--> return은 List로 받는다.
--> ListOrderedMap과 MapIterator을 이용하여 값을 빼온다.(import해야함)
예:)
List result2 = getJdbcTemplate().queryForList(sql);
for(int i=0 ; i<result2.size() ; i++) {
ListOrderedMap orderMap= (ListOrderedMap)result2.get(i);
MapIterator map = orderMap.mapIterator();
while( map.hasNext() ) {
Object key = map.next();
Object value = map.getValue();
System.out.println(key+" : "+ value);
}
}
--> 리턴 받은 List에는 내부적으로 List interface를 구현한 LinkedList가 있으며 이 LinkedList에는 key와 value로 이루어진 ListOrderedMap의 배열이 존재한다.
사용할때는 그냥 리스트에서 Map을 뽑아서 쓰면 되겠다.....