Background Image

FORUM

조회 수 11213 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
 Linux 64bit
CUBRID Ver.
 서버 9.2.24.0002
CUBRID TOOL Ver.
 큐브리드 매니저 9.3.6.001
응용 환경(API)
 java / mybatis 3.2.8 / cubrid jdbc 9.2.24.0002 사용

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------


다음과 같이, SELECT시 서브 쿼리의 결과를 LIST 데이터 타입으로 받도록 했습니다.

(아래 쿼리는 상황 설명을 위한 예시입니다.)


SELECT LIST( SELECT 1 UNION SELECT 2 UNION SELECT 3 ) AS no_list


위와 같이 하면, 큐브리드 매니저 상으로는 {1,2,3} 으로 확인이 되는데요,

상기 쿼리를 mybatis를 통해 수행하게 되면 해당 컬럼의 값이 null 로 확인되어 문의드립니다.


큐브리드의 LIST / SET 등의 데이터 타입이 JAVA의 java.util.list로 매칭되어 반환될 것이라고 기대를 했었는데요,

mybatis를 통해 위 결과를 Java List 형으로 받을 수 없을까요? 아니면 다른 체크 포인트가 있는 것일까요?


도움 부탁드립니다^^;


고맙습니다. :-)

  • ?
    진우진 2016.03.22 09:28
    위 쿼리의 경우
    JAVA에서 mybatis로부터 쿼리 결과를 받을 때
    전체 결과는 java.lang.List 타입,
    List 안에 포함된 각각의 행은 HashMap,
    결과 행의 컬럼값은 HashMap에 "no_list" key에 대한 value 값으로 접근 가능합니다.

    List에 접근 -> 결과셋의 row는 List 내의 HashMap<key,value> 객체들로 구성되므로 하나의 HashMap 객체에 접근 ->
    HashMap의 no_list 키가 가리키는 값에 접근

    위 순서로 되야 합니다.

    쿼리에서 SELECT 문으로 가져올 값이 큐브리드의 LIST 타입이므로 자바에서는 Object 타입으로 받고
    Object 에서 오버라이드 되지 않은 toString 메소드는 메모리 주소를 리턴하므로
    Arrays 클래스의 toString 메소드를 이용하여 주소가 아닌 실제의 값에 접근 가능합니다. 

    아래 간단한 예제 소스를 만들어 첨부해드리겠습니다.


    Mybatis Mapper 를 아래와 같이 설정한 뒤
       <select id ="selectSample2" parameterType="java.util.HashMap" resultType= "java.util.HashMap">
            select {1,2,3} as no_list from tbl;
        </select >

    컨트롤러 소스에서 다음과 같이 접근해주면 될 것 같습니다.
    0번 index를 가진 행(HashMap)에서 "no_list" 키의 값을 자바 기본 제공되는 Arrays 클래스의 toString() 메소드로 출력하는 방법을
    사용하였습니다.

    List<HashMap<String, Object>> outputs2 = sqlSession.selectList("userControlMapper.selectSample2", input); 
    System.out.println(Arrays.toString((Object[])outputs2.get(0).get("no_list")));

    위 접근 방법을 토대로 응용하시면 될 것 같습니다. 참고로 쿼리 결과 {1,2,3}에 대한 자바 내 타입은 Ljava.lang.Integer 형태로 나왔었습니다.
    프레임워크 및 언어간 형 변환에 관한 질답은 국내 사이트들보다 해외 프로그래밍 커뮤니티 및 포럼을 찾아보시면 다양한 방면의 질답을 찾으시기 수월하실겁니다. 
    위의 예제 소스는 테스트용으로 결과 나오는 방법을 설명하기 위한 목적으로만 작성한 것으로
    검색해보시면 분명 제가 적어드린 내용보다 더 편하고 간결한 방법이 있을것으로 생각됩니다. 
    감사합니다.
  • ?
    차오이 2016.03.22 21:28

    진우진님 자세한 답변 고맙습니다 ^^

    적어주신 내용 참고하겠습니다



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 33
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
2313 백업DB 정렬별 다른결과 출력. 1 secret 유산균- 2016.03.26 11
2312 테이블 내 데이터타입 값 변경문제 문의 2 아네모네 2016.03.25 10149
2311 cubrid 이중화 문의좀드립니다 3 곰팅팅이 2016.03.25 10678
2310 윤년의 날짜 계산부분의 오류? 3 라면 2016.03.24 9856
2309 Table Drop 후 데이터 볼륨 Size 에 변동이 없네요. 3 브이찾기 2016.03.24 9333
2308 큐브리드 브로커가 BUSY 상태로 지속되는 현상 문의 2 종이 2016.03.23 9347
2307 auto_increament 추가와 브로커관련 문의드립니다. 1 카이군 2016.03.23 8189
» 큐브리드 List 데이터 타입에 대한, mybatis 연동 방법 문의 2 차오이 2016.03.22 11213
2305 Table 및 Index 가 사용하고 크기를 알수 있는 방법을 알려 주세요 6 브이찾기 2016.03.19 9623
2304 큐브리드 최신 릴리스노트 관련 문의 2 종이 2016.03.18 8257
2303 databases 파일로 복구가 가능한지요 1 서영아빠 2016.03.18 7806
2302 큐브릭 펜타호와 연계하는 방법 궁금합니다. 야밤비 2016.03.16 7614
2301 큐브리드 매니저 서비스 잦은 종료 1 라면 2016.03.15 8623
2300 인서트 시 IX_LOCK 문의 1 joke7 2016.03.14 7707
2299 UTF8 로 DB 를 만들고 한글 입력시 한글이 초과하여 들어 갑니다. 3 브이찾기 2016.03.14 9140
2298 테이블에 있는 컬럼들중 특정값 있는 컬럼찾기 또수니 2016.03.12 7611
2297 백업 및 복원시 테이블 복원 안되는 현상.. 1 말큼 2016.03.11 7159
2296 asp oledb로 연결해서 사용시 1 슈퍼뚱땡이 2016.03.08 8946
2295 Oracle->Cubrid 시 인덱스가 중복되었습니다. 라는 오류가 납니다. 2 secret 바퀴벌레 2016.03.07 6
2294 Cubrid 9.3 버전 문의 3 secret 일산 2016.03.07 9
Board Pagination Prev 1 ... 80 81 82 83 84 85 86 87 88 89 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales