본문 바로가기
Framework/Mybatis

ORACLE CLOB 처리 / resultMap 사용방법

by 나비와꽃기린 2016. 10. 28.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.



http://mkil.tistory.com/330 에서도 보았듯이 CLOB 데이터를 처리함에 있어서

순간 뻘짓을 한 기억이 있어서 기록해 두려고 합니다 (;;;) 


개념이 부족했던 거지요....

왜 reusultMap 을 사용했는지에 대한 기초 지식이 없었기 때문에 새로 환경구성을 하면서 알게되었던 거죠. 부끄러울 따름입니다.


ORACLE 의 CLOB 타입의 데이터는 MyBatis를 이용해 처리할때는 resultMap 태그를 만들고 타입을 지정해줘야 합니다.


이유는, CLOB 타입을 String형으로 매핑하여 사용하기 위함이죠.


resultMap을 사용할 때는 resultType이 아닌 resultMap으로 명시해야한다는 것을 주의해야 합니다 ***


그리고 resultMap 의 id값과 일치하게 적어주셔야지 참조 사용이 되는 것이랍니다.



<resultMap id="getBoardListResult" type="HashMap">
	<result property="BRD_TYPE" column="BRD_TYPE" />
	<result property="BRD_CD" column="BRD_CD" />
	<result property="DOCNUM" column="DOCNUM" />
	<result property="ADD_USR_NM" column="ADD_USR_NM" />
	<result property="TITLE" column="TITLE" />
	<result property="CONTENTS" column="CONTENTS" jdbcType="CLOB" javaType="java.lang.String" />
	<result property="ATTACH" column="ATTACH" />
	<result property="DEL_CONF" column="DEL_CONF" />
	<result property="VIEWCOUNT" column="VIEWCOUNT" />
</resultMap>


 <select id="boardSql.selectList" parameterType="java.util.HashMap" resultMap="getBoardListResult">
	SELECT * FROM
		(SELECT  ROW_NUMBER() OVER(ORDER BY DOCNUM DESC) RNUM,
				BRD_TYPE,
				BRD_CD,
				DOCNUM,
				ADD_USR_NM,
				TITLE,
				CONTENTS,
				ATTACH,
				DEL_CONF,
				VIEWCOUNT
		 FROM BOARD_MAIN_TEST
		) X WHERE X.RNUM BETWEEN #{first} AND #{last}
</select>