SELECT문의 선택 목록에 둘 이상의 컬럼 또는 표현식이 표시되는 경우, 컬럼이 기존 클래스로 기본 변환되지 않을 수 있습니다. 이러한 상황에서는 전용 클래스를 작성하거나 java.util.Map과 같은 일반용 클래스를 사용하는 것 중에서 선택해야 합니다.
예를 들어, 직원이 셋 이상인 각 부서(WORKDEPT)에 대한 평균 정규 학력(EDLEVEL) 년 수가 보고서에 필요하다고 가정하십시오. 다음과 같은 애플리케이션 논리의 결과로 average_edlevel 및 workdept 키가 있는 Map 오브젝트의 List를 얻을 수 있습니다.
Connection con = DriverManager.getConnection(...); Data db = DataFactory.getData(con); List<Map<String, Object>> edLevelReport = db.queryList( "SELECT AVG(EDLEVEL) AS AVERAGE_EDLEVEL, WORKDEPT FROM " + " SAMPLE_SCHEMA.EMP GROUP BY WORKDEPT HAVING COUNT(*) > 3" );
위에서는 public List<Map<String, Object>> queryList(String sql, Object... parameters)로 정의된 queryList 메소드의 호출을 사용합니다.
쿼리 결과의 각 행은 Map이 됩니다. 모든 Map 오브젝트의 List는 전체 쿼리 결과를 포함합니다. Map의 키는 소문자 이름을 사용하여 작성됨에 유의하십시오.