SSISO Community

시소당

Spring에서 Select쿼리를 위한 getJdbcTemplate 활용

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을 뽑아서 쓰면 되겠다.....

3484 view

4.0 stars