Category Archives: Ibatis/MyBatis

Ibatis 쿼리 수행시 java.util.NoSuchElementException 이 발생하는 경우

By | 9월 11, 2013

Case 1.     가장 흔한 경우로, 바인딩변수 메타문자인 #을 열어놓고 닫지 않은 경우이다. (ex: #userId => #userId#)     내 경험상 이럴 때는 컴파일단계에서 오류가 발생했던 것 같다. Case 2.     이 경우는 좀 드문 경우였는데, 쿼리 내에서 괄호() 를 정상적으로 열고 닫지 않았을 경우에 발생했다.     내 경우에는 NVL()함수를 사용하는데 앞… Read More »

[펌글] iBatis에서 procedure 실행시 register output parameters failed 에러

By | 11월 19, 2012

– 출처 : http://yep1004.blog.me/100070785016 –  Never used it with stored procedure calls, but I would try defining the OUT parameter as a BigDecimal and see what happens. Oracle tends to return numerics as BigDecimals.즉, procedure에서 선언된 ‘NUMBER’ 타입의 변수는 oracle 내부적으로 BigDecimal 로 변환한다는 것!따라서 parameterMap에서 아래와 같이 선언해 주어야 한다.<parameter property=”outValue”  jdbcType=”DECIMAL” mode=”OUT” javaType=”long”/>이는 IN/OUT 전체에서 발생하므로,… Read More »

ibatis 에서 쿼리 문장 내에 #이 포함되어 있을 경우 escape 방법

By | 6월 21, 2011

select ‘#ABC’ from dual  위와 같은 SQL문을 ibatis로 실행하려 할 경우, ibatis는 #이후를 바인딩 변수로 인식하려 하기 때문에 오류를 발생시키게 된다. 이 경우는 #앞에 #을 한 번 더 붙여 주면 첫 번째 #은 escape character로만 작용하고 이후 #을 일반 문자열로 인식하게 된다. select ‘##ABC’ from dual 

ibatis에서 1:N 의 select 결과 얻어오기 (VO객체간 1:N 관계 활용)

By | 5월 18, 2010

# 예시의 전제 * 예시 쿼리는 한 유저당 한 로우씩 리스트를 반환하는 쿼리이다. * 한 유저가 다수의 프로젝트를 갖고 있으므로, 쿼리 자체의 결과 로우수는 각 유저당    프로젝트 수 만큼 늘어나고, 프로젝트를 제외한 값들은 동일한 값들이 중복된다.      => 중복ROW를 합치는 노력 필요(쿼리는 그냥 두고 ibatis에서 처리) * User.java는 Project.java 객체의 List를 멤버로 가지고 있다.    => private List<Project>… Read More »

Ibatis에서 select한 CLOB 데이타를 String으로 얻어오기

By | 6월 23, 2009

– 출처 : http://anarchi.tistory.com/34 – 위 글의 요점은 다음과 같다. (CLOB이 select 쿼리에 포함되어 있다는 전제하에) 1. <select id=”selectXXXX” resultClass=”java.util.HashMap”>  처럼     바로 HashMap으로 들어가지 말고, 별도의 resultMap을 정의할 것     => <select id=”selectXXXX” resultMap=”xxxxResultMap”> 2. resultMap 정의시 쿼리 순서와 resultMap 정의 순서가 동일해야 함 3. resultMap이나 쿼리나 CLOB 항목은 제일 마지막에 두어야 함. 4. resultMap에서 CLOB에 관한… Read More »

resultMap의 상속(extends) 이용하기

By | 3월 2, 2009

– 출처 : http://blog.daum.net/uttiboy/13497132 – 예제) 내용을 포함하지 않은 message 객체     <resultMap id=”message-result” class=”message”>         <result property=”messageId” column=”MESSAGE_ID”/>         <result property=”boardId” column=”BOARD_ID” />         <result property=”title” column=”TITLE” />         ….     </resultMap>        내용을 포함한 message 객체     <resultMap id=”message-contents-result” extends=”message-result” class=”message”>         <result property=”contents” column=”CONTENTS” javaType=”string” jdbcType=”CLOB” />     </resultMap>

[Ibatis] Ibatis에서 아무런 이유 없이 select 결과가 나오지 않을 때

By | 2월 27, 2009

Ibatis 로 select 작업을 하던 도중에, 특정한 키값으로 검색을 하니 ResultSet을 전혀 리턴해주지 못하고 로그도 멈추는 경우가 있었다. 로그를 긁어다가 토드에 붙여서 실행을 하면, 분명히 select 를 해 오는데, 똑같은 쿼리를 Ibatis에서 돌리면 전혀 결과값을 못얻어오는 것이었다. 나중에 알고 보니, 그 키값이 있는 칼럼이 DB에는 char(18) 로 되어 있었는데, 던졌던 테스트 데이터는 14자리여서 그런 오류를 냈던 것이었다.… Read More »