Background Image

FORUM

조회 수 13748 추천 수 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 도구 출시 안내 21 admin 2024.04.23 143885
2349 cubird.conf 설정 중 문의드립니다. 1 라면 2016.06.03 11669
2348 G-클라우드 전자정부프레임워크 호환 버전 및 큐브리드 버전 1 안녕호호 2016.06.01 12182
2347 Oracle --> Cubrid 쿼리 변경 질문입니다! 3 잘하자! 2016.06.01 13984
2346 databases 폴더 이동. 2 철이 2016.05.31 12378
2345 외부 개체에 트랩 가능한 오류(C0000005)가 발생했습니다. 스크립트를 계속 실행할 수 없습니다. 오류가 발생합니다. 2 하아품 2016.05.28 15895
2344 큐브리드 HA copylogdb 오류 문제... 4 SHnJH 2016.05.26 12979
2343 password file open error 라고 뜹니다. 1 철이 2016.05.25 11821
2342 MSSQL에서 큐브리드 연동 3 미곰 2016.05.24 13742
2341 gorup_concat 에서 level 을 인식못하는 문제 2 보살 2016.05.20 11378
2340 한글테이터 깨짐현상 1 jmhoya 2016.05.20 11736
2339 큐브리드 매니저 실행시 workspace 설정? 1 라면 2016.05.18 11032
2338 On-line 상태에서 Volume 추가 안되는 문제 2 브이찾기 2016.05.17 10479
2337 큐브리드 -75에러 확인 좀 부탁드려요 1 봉보로봉봉 2016.05.09 10797
2336 별도의 패키지 프로그램 제작시 설치파일 3 강아지60 2016.05.07 11742
2335 HA 환경에서의 대량의 Data 이관 관련 문의 2 브이찾기 2016.05.04 11607
2334 로그 관련 질문 몇가지입니다. 1 라면 2016.05.04 11382
2333 브로커 구동시 cas가 제대로 올라오지 않습니다. 1 tlawldyd 2016.05.03 12172
2332 Archive Log만으로 타임복구가 가능한가요? 4 핑핑크 2016.04.29 12773
2331 python3.x, django1.8 이상 지원 하는 드라이버 좀 만들어 주셨으면 합니다. 1 블랙이 2016.04.20 11758
2330 Oracle->Cubrid 시 cubrid Manager 툴에서 2 블랙이 2016.04.20 12224
Board Pagination Prev 1 ... 91 92 93 94 95 96 97 98 99 100 ... 213 Next
/ 213

Contact Cubrid

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