2008년 7월 7일 월요일

iBatis + MySQL 삽질

iBatis 와 MySQL 을 처음 이용하는 경우 자주 하는 삽질 중 3가지를 정리해 보았다.

Limit 에서 SQL 연산

MySQL 에서 limit 10, 10이런건 되도 limit ((1-1)*10), 10 이런식은 안된다.
따라서 당근 iBatis 등에서도 혹시라도 PaginatedList 를 쓰지 않고 pageno 와 itemsPerPage 따위의 파라메터를 넘겨서

limit (( $pageno$ - 1) * $itemsPerPage$), $itemsPerPage$

와 같은 식으로 조합하면 에러가 난다. ( 저 자체는 mysql 의 sql 오류지만 단일값이라면 $$ 를 쓰던 ## 를 쓰던 상관없이 둘다 먹힌다 )

ORDER BY 에서의 ## 이용

ORDER BY 쪽에는 ##  로 치환하면 안된다. ## 가  preparedStatement 의 ? 로 치환되어 사용되기 때문인 것 같은데, 단순 텍스트 치환을 위해서는 $$ 로 바꾸어서 사용하면 된다.

Like 구문 조합

MySQL 의 쿼리에서 Like 구문을 쓰는 경우에는 concat('%' , #keyword#, '%') 이런 식으로 조합을 해주는 것이 좋다 ( 실제 쿼리를 where xxx like '%학교%' 이런식으로 하는 경우)

댓글 없음:

댓글 쓰기

가장 많이 본 글