KSI일기장
resultMap역할과 사용이유 & parameterType,resultType사용 본문
*resultMap 태그의 역할*
-SELECT 조회결과(ResultSet)의 컬럼과
조회결과를 옮겨 담을 VO의 필드명이 일치하지 않을 때
이를 매핑시켜 조회결과가 필드에 세팅되게 하는 역할
[resultMap 속성]
1)type :조회결과를 담을 VO의 타입 또는 별칭 ex)mybatis-config에서 만든member
2)id :만들어진 resultMap태그를 지칭할 이름(식별명)
*resultMap에 vo를 작성하는 이유*
-VO의 필드명과 DB의 조회되는 컬럼명이 일치하면 자동으로 VO객체에 값이 세팅된다
-> java와 DB의 표기법 차이로 인해 위 특징이 적용되는 경우가 거의 없다
ex) vo.Member = memberNo -> DB = MEMBER_NO
-> 해결방법
필드명, 컬럼명이 다르더라도 이를 연결시켜 줄 수 있는 <resultMap> 태그를 제공한다
[vo필드] - [DB의 컬럼]
memberNo - MEMBER_NO
<resultMap type="member" id="member_rm">
<id property="memberNo" column="MEMBER_NO"/>
<result property="memberEmail" column="MEMBER_EMAIL"/>
<result property="memberPw" column="MEMBER_PW"/>
<result property="memberNickname" column="MEMBER_NICK"/>
<result property="memberTel" column="MEMBER_TEL"/>
<result property="memberAddress" column="MEMBER_ADDR"/>
<result property="profileImage" column="PROFILE_IMG"/>
<result property="enrollDate" column="ENROLL_DT"/>
<result property="secessionFlag" column="SECESSION_FL"/>
</resultMap>
resultMap="member_rm" -> 조회결과를 member_rm을 이용해 비교하여 VO에 세팅까지 해준것이다
*****select태그 속성*****
resultType : 조회결과의 자료형을 결정
조회결과가 1행 1열인 경우에만 작성해야 한다
조회된 데이터의 java자료형을 Mybatis별칭 형태로 작성해야 한다
자료형에 vo를 적어줄 경우 모든 경로를 적어줘야한다
[**mybatis별칭**]
[java] : [mybatis]
int : _int
Integer : int
String : string (== java.lang.String)
ex)
<!-- 조회되는 행 개수: 1행 -->
<select id="test1" resultType="_int">
SELECT COUNT(*) FROM MEMBER_S
</select>
*parameterType : sql구문에 사용될 매개변수의 자료형을 결정
자료형에 vo를 적어줄 경우 모든 경로를 적어줘야한다
ex)
<select id="test1" parameterType="comm.si.login.vo.member" resultType=" comm.si.login.vo.member ">
SELECT COUNT(*) AS mem_cnt FROM MEMBER
WHERE MEMBER_NO = #{memberNo}
</select>
'Spring' 카테고리의 다른 글
0509spring 게시물 댓글(2) 댓글 달기(삽입) (대댓글 포함) (0) | 2023.05.11 |
---|---|
spring에러 MethodArgumentTypeMismatchException,NumberFormatException (0) | 2023.05.09 |
spring MVC 요청 처리 과정 (0) | 2023.05.09 |
0508spring 게시판(5) 글 삭제 (0) | 2023.05.09 |
0509spring 게시물 댓글(1) 댓글조회 (댓글 DB테이블 생성, jsp,js포함) (0) | 2023.05.08 |