Background Image

FORUM

조회 수 11214 추천 수 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 139
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4477
925 ms-sql -> cubrid로 마이그레이션 가능한지 문의드립니다~ 1 대청 2019.04.14 237
924 varchar와 char 데이터타입의 디스크에서의 크기 문의 1 큐브리드광 2020.07.07 237
923 전체 복구 이후 증분 복구가 오류 납니다. 3 coolkkm 2017.10.20 236
922 CentOS 7 환경에서의 CUBRID 8.4.1.32003 버전의 php 5.4.16 드라이버 빌드 1 김람지 2019.04.03 236
921 외래키 제약사항 생성 시. 1 열쓰 2021.11.30 236
920 이중화 관련 추가 질문 드립니다. sync 설정을 관련 질문입니다. 1 coolkkm 2018.01.11 235
919 insert all 1 Babiyo 2020.09.22 235
918 많은 데이터를 select를 했는데 cubrid가 꺼져버립니다. 5 테스형2 2021.09.14 235
917 스케줄러 관련 질문 4 늅늅 2022.08.01 235
916 CUBRID DB 에 대한 색인 작업시 TIMEOUT 문의드립니다. 1 비너스 2021.12.21 235
915 cubrid manager heap size 설정방법 문의 2 lkc0626 2019.09.19 235
914 몇가지 질문사항이 있습니다.. 3 bjosbkjx 2019.02.12 234
913 큐브리드관련 질문드립니다. 1 CJH3320 2018.03.12 233
912 큐브리드 매니저에 테이블 목록이 안보입니다. 1 file 배여사남편 2019.03.08 233
911 리눅스에 큐브리드 설치 관련 질문 입니다. 1 file 하인츠링게 2021.04.09 233
910 큐브리드 unload 문의드립니다. 5 초코초코초 2023.02.22 233
909 큐브리드 매니저 엑셀저장 기능을 질의결과를 보지 않고 저장하는 방법은 없나요? 1 봉보로봉봉 2020.08.05 232
908 Python 3.9 버전 사용시 Cubrid 접속 불가에 대한 개선 요청 1 오션나인 2021.02.19 232
907 쉘스크립트에서 큐브리드 접속 1 susu 2022.06.09 232
906 큐브리드 DAMO(암호화)관련 버전 호환관련하여 문의드립니다. 3 초코초코초 2023.03.20 232
Board Pagination Prev 1 ... 150 151 152 153 154 155 156 157 158 159 ... 201 Next
/ 201

Contact Cubrid

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