데이터베이스를 쿼리하는 인라인 메소드의 목표 유형: Map 오브젝트

java.util.Map<String, Object> 오브젝트에 쿼리 결과를 저장할 수 있습니다.

SELECT문의 선택 목록에 둘 이상의 컬럼 또는 표현식이 표시되는 경우, 컬럼이 기존 클래스로 기본 변환되지 않을 수 있습니다. 이러한 상황에서는 전용 클래스를 작성하거나 java.util.Map과 같은 일반용 클래스를 사용하는 것 중에서 선택해야 합니다.

예제

예를 들어, 직원이 셋 이상인 각 부서(WORKDEPT)에 대한 평균 정규 학력(EDLEVEL) 년 수가 보고서에 필요하다고 가정하십시오. 다음과 같은 애플리케이션 논리의 결과로 average_edlevelworkdept 키가 있는 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의 키는 소문자 이름을 사용하여 작성됨에 유의하십시오.


피드백