기타 개념/question

Mybatis - Result Type

워제하 2024. 9. 4. 13:34

 

ResultType

: resultType은 퀴리 결과가 맵핑될 Java의 객체 타입을 지정한다.

예 ) resultType="java.util.Map" 으로 설정하면, 쿼리 결과가 Map 형태로 반환된다. 

      이때 데이터베이스 컬럼 이름이 Map의 키가 되고, 각 키의 값이 맵핑된 행의 값이 된다.

 

 

 

 

- lowerMap

 : resultType="lowerMap"은 일반적으로 사용자 정의 타입으로 정의된 타입 핸들러를 통해 제공되는 기능이다.

 LowerMap의 경우, 반환된 Map의 모든 키가 자동으로 소문자로 변환되도록 설정된다.

 

 

 

 

마이바티스 select 쿼리문 예시

<mapper namespace="UserInfoSQL">

<select id="selectUserInfoList" parametertype="java.util.HashMap" resultType="lowerMap">
SELECT A.USER_ID AS USER_ID
     , A.USER_NM AS USER_NM
     , A.DEPT_CD AS DEPT_CD
     , B.DEPT_NM AS DEPT_NM
     , A.USER_EM AS USER_DM
     , A.USER_PH AS USER_PH
     , A.REG_DATE AS REG_DATE
     , A.MODI_DAYE AS MODI_DATE
  FROM T_OPRA_USER_INFO01M1 A
     , T_OPRA_DEPT_INFO01M1 B
 WHERE A.DEPT_CD = B.DEPT_CD
 ORDER BY A.REG_DATE
 
 </select>
 </mapper>

 

 

 

 

 

 

 

※ select는 반환값이 list, map 형식, 나머지 insert, update, delete는 반환형식이 int 혹은 boolean 타입

- SELECT : 결과 집합 (ResultSet)을 반환

- INSERT : 삽입된 행의 수를 반환

- UPDATE : 수정된 행의 수를 반환 

- DELETE :  삭제된 행의 수를 반환

 

 

 

< 리스트 형식으로 반환  >

- 리스트(List) 형식으로 반환 예시

List<User> users = new ArrayList<>();

while (resultSet.next()) {
    User user = new User();
    user.setId(resultSet.getInt("id"));
    user.setName(resultSet.getString("name"));
    user.setAge(resultSet.getInt("age"));
    users.add(user);
}

 

- 마이바티스(MyBatis)에서의 반환 예시

<select id="selectAllUsers" resultType="User">
  SELECT id, name, age FROM users
</select>

 

 

 

 

 

< 맵 형식으로 반환 >

- 맵(Map) 형식으로 반환 예시

List<Map<String, Object>> resultList = new ArrayList<>();

while (resultSet.next()) {
    Map<String, Object> rowMap = new HashMap<>();
    rowMap.put("id", resultSet.getInt("id"));
    rowMap.put("name", resultSet.getString("name"));
    rowMap.put("age", resultSet.getInt("age"));
    resultList.add(rowMap);
}

 

- 마이바티스(MyBatis)에서의 반환 예시

<select id="selectAllUsers" resultType="map">
  SELECT id, name, age FROM users
</select>

 

 

 

 

'기타 개념 > question' 카테고리의 다른 글

ModelAndView  (0) 2024.05.26