수업내용/프로젝트

[Spring/mybatis] resultMap (한 아이디에 해당하는 항목리스트 불러오기)

주니어주니 2023. 2. 20. 18:07

 

 

 

 

이런식으로 회원 한 명당 그 회원이 신청한 수업리스트를 셀렉트박스로 표현하기

 

 

* 화면에 표시되는 항목들로 구성한 Dto

 

* view

- userList 에는 UserListDto 

- user.programs 리스트에서 forEach를 돌아줌

- user.programs는 FitnessProgram 객체의 리스트 -> prog(FitnessProgram 객체)의 no, name을 표시

 

 

 

* userList.xml 

- resultMap의 사용 : FitnessProgram의 컬렉션을 가진 UserListDto의 매핑

- "getUserListDto" sql의 resultType이 원래 UserListDto 인데, 얘는 또 Program의 컬렉션을 가져야 하기 때문에 resultMap에 "UserListResultMap" 이라는 id를 가지는 sql을 사용

- 기본키가 되는 컬럼을 <id>로 지정

- column 에는 그 테이블의 컬럼명을 적음 (원래 user_id, program_no인데 id, progNo라고 별칭을 준 것)

- property 에는 매핑하려는 해당 테이블 객체의 변수명을 적음  

( user 테이블의 user_id 컬럼(별칭 id)은 UserListDto 객체의 변수명인 "id"에 매핑된다 )

- UserListDto 안에 FitnessProgram의 collection이 있는 것

- 그 resultMap을 사용하는 select문의 resultMap에 resultMap의 id로 적어줌 

 

 

 

 

 

 

Mybatis  홈페이지 참고