SELECT
USER_ID
, DEPT_ID
, USER_NM
FROM USER_INFO
|
cs |
사용자 테이블 조회시 결과값이 아래와 같이 조회되는경우
USER_ID | DEPT_ID | USER_NM |
U23001 | D001 | 홍길동 |
U23002 | D002 | 이순신 |
U23003 | D003 | 장영실 |
그리고 부서 테이블 조회 시 결과값이 아래와 같이 조회되는 경우
SELECT
COMPANY_CODE
, COMPANY_NAME
, DEPT_ID
FROM DEPT_INFO
WHERE 1 = 1
AND DEPT_ID = 'D001'
|
cs |
COMPANY_CODE | COMPANY_NAME | DEPT_ID |
C001 | 티스토리 그룹 | D001 |
C002 | 티스토리 건설 | D001 |
C003 | 티스토리 패션 | D001 |
xml에서의 쿼리 작성은 두개로 해야 하지만, 호출 하나로 두개의 LIST를 모두 가져와 jsp 에서 파싱이 가능하다.
/* controller 에서 호출하는 mapper ID : getUser_List */
<select id="getUser_List" resultMap="deptListMap" >
SELECT
USER_ID
, DEPT_ID
, USER_NM
FROM USER_INFO
</select>
/* getUser_List 에서 호출하는 mapper ID : getUser_List */
<resultMap id="deptListMap" type="java.util.HashMap"> /* type은 리턴 될 타입 */
<result property="DEPT_ID " column="DEPT_ID "/>
<result property="추가 컬럼있을경우" column="추가 컬럼있을경우"/>
<collection property="DEPT_LIST" column="DEPT_ID = DEPT_ID , 추가 컬럼있을경우 = 추가 컬럼있을경우" javaType="java.util.HashMap" ofType="java.util.HashMap" select="getDeptDataList"/>
</resultMap>
/* controller 에서 호출하는 mapper ID : getUser_List */
<select id="getDeptDataList" parameterType="java.util.HashMap" resultType="java.util.HashMap" >
SELECT
COMPANY_CODE
, COMPANY_NAME
, DEPT_ID
FROM DEPT_INFO
WHERE 1 = 1
AND DEPT_ID = #{DEPT_ID} // deptListMap 의 result property
</select>
|
cs |
java 파일
// DAO 또는 서비스 (xml호출 부분) 샘플
// 상단 xml mapper id 중 getUser_List 하나만 호출 한다.
// 각자 맞는 형식에 따라 수정해야 합니다.
sqlSession.selectList("[MapperNamespace].getUser_List");
// controller 샘플
// 각자 맞는 형식에 따라 수정해야 합니다.
List resultList = 서비스명.getUser_List();
HashMap rtn = rtn.put("resultList", resultList);
return rtn ;
|
cs |
jsp에서 파싱 예제
<c:forEach items="${resultList}" var="item" varStatus="status">
${item.USER_NM}
<c:forEach items="${item.DEPT_LIST}" var="deptList" varStatus="DeptSatus"> // items는 xml에서 collection property 값
${deptList.COMPANY_NAME}
</c:forEach>
</c:forEach>
|
cs |
contoroller에서 map에 담아 리턴한 resultList 로 for문 돌리면서 해당 값에 속하는 부서정보 LIST를 파싱하면 된다.
핵심은 xml 작성 예시와 jsp 파싱 예제만 보면 된다.
controller는 이해를 돕기위해 샘플로 작성한 파일이라 각자 맞는 프레임워크에 맞춰 수정하며 된다.
'WORK > JAVA' 카테고리의 다른 글
Eclipse 에서 Maven Project War Export (0) | 2023.12.19 |
---|---|
jsp 엑셀다운로드 받기 (3) | 2023.11.29 |
spring boot 에러페이지 만들기 (1) | 2022.11.01 |
이클립스 git 접속정보 저장 (1) | 2022.09.29 |
curl REST API 호출 및 값 파싱 예제 (0) | 2022.09.19 |