저는 ibatis에서 주로 resultType으로 resultClass를 사용했습니다.
VO에 선언해주고 resultClass에 선언해주면 끝이었으니까요.(간단해서)
주석의 기능은 userVO를 단건 조회할때 user의 subject의 리스트를 가져오는 기능입니다.
ex) userVO={userName=홍길동, userSeq=10, userAge=17, userGender=M, userSubjects=[Math,English,Science]}
정리하면
1. resultMap을 사용할땐 column의 값이 property의 값으로 set된다
2. resultMap안에 List변수를 선언해서 또 하나의 쿼리ID를 실행할 수 있다.
3. resultMap안에 List변수를 선언했다면 VO에 List변수를 선언해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<typeAlias alias="userVO" type="com.ssc.prac.member.UserVO">
<resultMap id="resultVO" class="userVO">
<result property="userName" column="USER_NAME"/>
<result property="userSeq" column="USER_SEQ"/>
<result property="userAge" column="USER_AGE"/>
<result property="userGender" column="USER_GENDER"/>
<!-- 자식테이블을 리스트로 가져오기 -->
<result property="userSubject" column="USER_SEQ" javaType="java.util.List" select="userDAO.getUserSubjects" />
</resultMap>
<!-- 유저단건조회 -->
<select id="userDAO.getUser" parameterClass="java.lang.String" resultMap="resultVO">
SELECT USER_NAME
,USER_SEQ
,USER_AGE
,USER_GENDER
FROM T_USER
WHERE USER_SEQ = #USER_SEQ#
</select>
<!-- 유저 subjects 리스트 조회 -->
<select id="userDAO.getUserSubjects" parameterClass="java.lang.String" resultClass="java.lang.String">
SELECT NAME
FROM T_SUBJECTS
WHERE USER_SEQ = #USER_SEQ#
</select>
|
cs |
1
2
3
4
5
6
7
8
9
|
public class UserVO {
private String userName;
private String userSeq;
private String userGender;
private String userAge
private List<String> userSubject;
//setter getter는 생략합니다.
}
|
cs |
감사합니다.
'IT > 개발' 카테고리의 다른 글
JAVA 상대경로 (0) | 2019.12.02 |
---|---|
JAVA 입력과 출력 stream (0) | 2019.10.19 |
Spring(JAVA) 엑셀 대용량 업로드 (3) | 2019.10.12 |
스프링 form태그 (0) | 2019.10.09 |
Java 파일 읽기, 파일 쓰기 (0) | 2019.10.08 |