Search Results for 'iBatis'

14 POSTS

  1. 2010.06.18 iBatis에서 selectKey사용시 주의할 점.
  2. 2010.03.31 iBatis log 예쁘게 보기
  3. 2007.12.06 iBatis에서 Like 검색처리방법.... 1

selectKey사용시 주의할점.

 

그동안 유용하게 사용하던 iBatis의 selectKey가 어느 순간 가져오지 못하는 경우가 발생했다.

insert 후 LAST_INSERT_ID()를 keyProperty에 담아 가져오게 되는데, 수정후에 가져오지 못하는것 경우가 발생했다.

 

이전과 달라진 점이라고 한다면 where절에 들어가는 조건이 하나 줄어 굳이 hashmap에 담지 않고

integer로 가져와도 되기에 parameterClass를 hashmap에서 int로 변경.

<insert id="insertUserInfo" parameterClass="KwdGrpClass or hashmap">

insert into kwd_grp ( name, kwd_idx, type )

values(#name#, #kwd_idx#,#type#)

<selectKey keyProperty="kwd_grp_idx" resultClass="java.lang.Integer">
   SELECT LAST_INSERT_ID()

</selectKey>

</insert>

 

selectKey는 거의 insert후에 자동증가한 값을 가져오기 위해 사용하는 방법인데,

대부분의 insert시 parameterClass로 hashmap에다 Object Class를 사용하게 되므로

아무 생각없이 selectKey의 keyProperty에 대한 존재감을 잊게되버리는 경우가 발생한다.

 

하지만 종종 insert문을 select Insert로 사용하게 되는 경우 사용시 주의해야 한다.

ex> insert into kwd_grp ( name, kwd_idx, type )

select  name, kwd_idx, type

from kwd

where kwd_idx = #kwd_idx#

 

위의 예는 억지로 만든거라서 좀 그렇긴 하지만 위의 경우 parameterClass는 string이 될것이다. 그러므로 selectKey를 사용하여 마지막 추가된 idx값(대부분 integer형태)을 가져오려면 keyProperty를 지정하지 않아야 한다. select insert같은 쿼리를 이용해 값을 추가할 때 hasmap이나 object Class 가 아닌 int, string을 parameterClass로 사용하기도 하는데, 이때는 keyProperty를 지정할수 없게 된다.

 조금만 생각해보면 당연한 걸수도 있는데, 그저 습관적으로 사용하다보면 그게 당연한걸로 인식되게 되고 그러다 보면 원리를 모른채 코딩을 하게 되곤한다.

 특히 쿼리나 메소드, 클래스등의 튜닝이나 Refactoring시 함께 변경해 줘야 할것이다.



iBatis log 예쁘게 보기

Posted 2010. 3. 31. 18:29

http://www.jakartaproject.com/board-read.do?boardId=jsptip&boardNo=119336284359281&command=READ&t=1216205179037

프로젝트생성후 jar 만들기

1. Create Java Project
2. import Archive 파일 to src Folder
3. change Source And Compile but Error  But Don't care...
4. export jar 파일
  must check error, warning 파일....
it's ok....


iBatis에서 Like 검색처리방법....

Posted 2007. 12. 6. 14:35
iBatis의 변수처리는 #value#  와 같은식이 된다.
그래서 아무생각 없이 like '%#value#%'  했더니 대번 에러난다.

엥..... 무슨 방법 없을까 고민쪼금 하다가.. 구글로 바로 검색들어갔다.
iBatis LIKE 검색 했더니....

오라클은 like '%'||#value#||'%' 로 하랜다...
우린 Mysql이니까..
like concat('%','#value#','%') 와 같이 하면 되겠다...

ㅎㅎㅎ 잘 된다.


« PREV : 1 : 2 : 3 : 4 : 5 : NEXT »