Oracle Mybatis Clob Select

2023. 2. 14. 14:56·Java

✅ 최초 Mapper

최초 Mapper를 작성할 때는 아무런 생각 없이 Map 형식으로 가져오려고 시도하였다.

 

⏹️ imageMapper.xml

<select id="ecmAnnotationInfo" parameterType="Map" resultType="Map">
    select
        MASK_INFO,
    from
        TB_ELB_MASK_B
    where
        EID = #{EID}
</select>

위와 같이 쿼리를 작성하였더니 오류는 나지 않지만 데이터를 제대로 가져오지 못하였다.

 

 

✅ ResultMap의 사용

그래서 두 번째로 resultMap을 통해 Clob을 String으로 변환하는 과정을 만들었다.

 

⏹️ imageMapper.xml

<resultMap id="anno_clob" type="Map">
    <result property="MASK_INFO" column="MASK_INFO" jdbcType="CLOB" javaType="java.lang.String" />
</resultMap>

<select id="ecmAnnotationInfo" parameterType="Map" resultMap="anno_clob">
    select
        MASK_INFO,
    from
        TB_ELB_MASK_B
    where
        EID = #{EID}
</select>

위와 같이 resultMap에서 CLOB을 String으로 변환하고

실제 select 쿼리에서는 reulstType이 아니라 resultMap으로 지정하면 된다...고 한다.

 

하지만 어떤 부분이 잘못된 건지 오류는 없지만 데이터를 제대로 받아오지 못했다.

 

✅ VO의 사용

그래서 결국 사용한 방법은 VO를 활용한 방식이다.

 

⏹️ ClobVO.java

package egovframework.CNPECMJava.ecm;

import lombok.Data;

@Data
public class ClobVO {

	private String MASK_INFO;
}

 

⏹️ imageMapper.xml

<resultMap id="anno_clob" type="egovframework.CNPECMJava.ecm.ClobVO">
    <result property="MASK_INFO" column="MASK_INFO" jdbcType="CLOB" javaType="java.lang.String" />
</resultMap>

<select id="ecmAnnotationInfo" parameterType="Map" resultMap="anno_clob">
    select
        MASK_INFO,
    from
        TB_ELB_MASK_B
    where
        EID = #{EID}
</select>

위처럼 select 쿼리는 resultMap을 통하고 resultMap은 VO를 통해서 나가면

정상적으로 데이터가 출력이 된다.

 

✅ 끝

해당 문제를 해결하기 위해서 여러 블로그를 둘러봤었는데 머리 아프기 싫으면 VO 사용하라는 글을 봤다.

어떻게든 Map으로 처리하려고 했는데 일찌감치 VO를 활용할 걸 그랬다.

저작자표시 비영리 (새창열림)

'Java' 카테고리의 다른 글

Java 문자 + 숫자로 이루어진 문자열 정렬  (0) 2023.03.22
'Java' 카테고리의 다른 글
  • Java 문자 + 숫자로 이루어진 문자열 정렬
요술공주밍키
요술공주밍키
조금씩이라도 꾸준히..
  • 요술공주밍키
    삽질의흔적
    요술공주밍키
  • 전체
    오늘
    어제
    • 분류 전체보기 (139)
      • Java (42)
        • Spring Boot (14)
        • Spring Boot 게시판 (14)
        • 공중화장실 찾기 (4)
        • 쇼핑몰 (8)
      • JavaScript (8)
        • NodeJS (2)
      • Python (5)
        • Django (4)
      • Server (10)
        • Docker (4)
        • K8S (0)
        • Jenkins (1)
      • 알고리즘 (24)
        • 프로그래머스 (19)
        • 백준 (5)
      • Etc (21)
        • 개발 팁 (1)
      • 일상 (27)
        • 독서 포스트 (25)
        • 회고록 (2)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
요술공주밍키
Oracle Mybatis Clob Select
상단으로

티스토리툴바