개발군싹

3-1) mybatis 데이터 조회(Map / DTO를 이용하지 않고 조회하기) 본문

Mybatis

3-1) mybatis 데이터 조회(Map / DTO를 이용하지 않고 조회하기)

개발자군싹 2023. 12. 4. 20:00

➡️ 보통 JDBC에서도 그렇고 많은 데이터를 조회할 때 보통 List Collection을 사용하였다. 이번엔 Map을 이용하여 DTO를 이용하지 않고 Map의 특성인 ‘key:value’를 이용하여 데이터 조회

Student DTO or List를 이용한 조회 방법과 동일하게 학생번호로 데이터를 조회해오기(Map 이용)

  • Servlet

⇒ 기존에는 List<Student> | Student DTO를 생성했지만 Map을 생성 후 번호에 해당하는 데이터를 key:value형식에 맞춰 저장 시킨 후 데이터를 조회할 수 있다.

int no = Integer.parseInt(request.getParameter("no"));
Map student = new StudentService().searchStudentByNoMap(no);
		
request.setAttribute("student",student);
request.getRequestDispatcher("/views/student/studentMap.jsp").forward(request, response);

 

  • student-mapper.xml

⇒ resultType을 mybatis 자료형인 ‘map’으로 선언하면 해당 DQL구문 결과를 Map의 key:value형태로 저장시켜 반환해준다. (mybatis Good❗❗❗)

<select id="searchStudentByNoMap" parameterType="_int" resultType="map">
		SELECT * FROM STUDENT WHERE STUDENT_NO = #{no}
</select>

 

 

-.jsp 화면에서 EL/JSTL 태그를 이용하여 분기 처리와 데이터 조회

<c:if test="${not empty student }">
		<ul>
			<li>번호 : ${student.STUDENT_NO }</li>
			<li>이름 : ${student.STUDENT_NAME }</li>
			<li>전화번호 : ${student.STUDENT_TEL }</li>
			<li>이메일 : ${student.STUDENT_EMAIL }</li>
			<li>주소 : ${student.STUDENT_ADDR }</li>
			<li>등록일 : ${student.REG_DATE }</li>
		</ul>
	</c:if>

 

 

Map을 이용한 다중 데이터 조회

➡️ 위에서 하나의 Map에 DB 컬럼값을 ‘key:value’ 형식으로 자동 저장되어 조회하는 방법

↔ 다수의 데이터 조회시 List의 제네릭 타입을 Map으로 정하여 하나의 데이터(ROW)마다 ‘key:value’로 매핑된 데이터를 List에 저장하여 가져올 수 있다.

  • Servlet
List<Map> students = new StudentService().selectStudentAllMap();
		
request.setAttribute("students",students);
request.getRequestDispatcher("/views/student/studentMap.jsp").forward(request, response);

 

  • student-mapper.xml
<select id="selectStudentAllMap" resultType="map">
		SELECT * FROM STUDENT
</select>

'Mybatis' 카테고리의 다른 글

3-3) mybatis-#{} 과 ${}의 차이  (0) 2023.12.04
3-2) mybatis에서 페이징 처리  (1) 2023.12.04
3) mybatis 데이터 조회(List)  (0) 2023.12.04
2) mybatis 예제(INSERT)  (1) 2023.12.04
참고) Mybatis 자료형  (1) 2023.12.04