[ibatis] resultMap의 property 속성 옵션 정리
resultMap의 property 속성 옵션 정리
ibatis에서 쿼리를 통해 실행된 결과를 리턴하는 타입을 정의하기 위한 <resultMap>을 명시한다.
[Java Web/MyBatis, iBatis] - [ibatis] resultClass, resultMap 사용 기본
1. <resultMap>의 <result> 옵션 값
<result property="propertyName" column="COLUMN_NAME"
[columnIndex="1"] [javaType="int"] [jdbcType="NUMERIC"]
[nullValue="-999999"] [select="someOtherSatement"] />
</resultMap>
빨간색으로 표시한 부분이 속성 값이며, [괄호]로 둘러싼 부분은 옵션이다.
<resultMap id=”get-category-result” class=”com.ibatis.example.Category”>
<result property=”id” column=”CAT_ID”/>
<result property=”description” column=”CAT_DESCRIPTION”/>
<result property=”productList” column=”CAT_ID” select=” getProductsByCatId”/>
</resultMap>
* <resultMap> 속성 값 사용 예
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <sqlMap namespace="Product"> <resultMap id="getProduct" class="com.ibatis.example.Product"> <result property="prdid" column="PRD_ID"/> </resultMap> <resultMap id="get-category-result" class="com.ibatis.example.Category" extends="getProduct"> <result property="catid" column="CAT_ID" columnIndex="1" javaType="int" jdbcType="NUMERIC" nullValue="-999999" /> <result property="prdnum" column="CAT_ID" select="getProductsByCatId"/> </resultMap> <statement id="selectCategory" resultMAP="get-category-result"> select * from CATEGORY </statement> <statement id="getProductsByCatId" parameterClass="java.lang.String" resultMAP="int"> select prdnum from PRODUCT where CAT_ID = #cat_id# </statement> </sqlMap> |
<resultMap> 은 get-category-result 를 id로 가지며, com.ibatis.example.Category 를 리턴 객체로 한다.
이 <resultMap> 은 id="getProduct" <resultMap>을 상속하여, "getProduct" 의 프로퍼티들을 포함한다.
"getProduct" <resultMap> 외의 추가적으로 "catid" 와 "productList" 변수를 Category 객체에 셋팅한다.
"catid" 는 데이터베이스 컬럼 "CAT_ID" 에 매핑되며 인덱스는 "1"로 지정된다.
데이터 베이스에서 조회되는 jdbcType 은 "NUMERIC"이며, 이것을 javaType 인 "int" 형으로 변환하여 객체의 변수에 셋팅한다.
"productList"는 <statement id="getProductByCatId"> 쿼리의 결과 값을 셋팅한다. "getProductByCatId" 를 실행하기 위해서 column 값인 "CAT_ID" 가 파라미터로 넘겨준다.
출처: https://hyeonstorage.tistory.com/285?category=549765 [개발이 하고 싶어요]
'Java 관련 > MyBatis, iBatis' 카테고리의 다른 글
[iBATIS/MyBatis]쿼리실행 리턴(Return)결과 차이 (0) | 2020.09.26 |
---|---|
[MyBatis] Invalid bound statement (not found): 에러 (0) | 2020.09.07 |
[mybatis] insert 후 key값 반환 (0) | 2020.09.07 |
[ibatis] parameterMap, resultMap 지원되는 jdbcType, javaType 정리 (0) | 2019.10.07 |
[ibatis] parameterMap의 property 속성 옵션 정리 (0) | 2019.10.07 |
[ibatis] resultClass, resultMap 사용 기본 (0) | 2019.10.07 |
[ibatis] parameterClass, parameterMap 사용 기본 (0) | 2019.10.07 |
[ibatis] <procedure> call 사용 (0) | 2019.10.07 |