웹 & 프레임워크

ResultSetExtractor 사용예제

늘근이 2014. 5. 8. 08:40

하나의 테이블에 대한 SELECT가아닌, JOIN을 통한 SELECT문이거나, 레코드가 여러개 나오거나한다면 RowMapperBeanPropertyRowMapper보다 ResultSetExtrator가 나을수있다. 또한 queryForObject는 결과가 무조건 하나가 나와야하고 나오지않으면 예외를 던지기 때문에 또한 대안이 될수있다. (사실 예외처리는 성능저하를 불러오는 이유중 하나이기도 하다)



익명 inner클래스는 이름이 없기때문에 선언하는 자리에 new와 같이온다.


new 상위클래스 또는 인터페이스 이름(){

메서드구현

}



public List getAllEmployees(){  
 return template.query("select * from employee",new ResultSetExtractor>(){  
    @Override  
     public List extractData(ResultSet rs) throws SQLException,  
            DataAccessException {  
      
        List list=new ArrayList();  
        while(rs.next()){  
        Employee e=new Employee();  
        e.setId(rs.getInt(1));  
        e.setName(rs.getString(2));  
        e.setSalary(rs.getInt(3));  
        list.add(e);  
        }  
        return list;  
        }  
    });  
  }  

//이뒤로 무시
//