myBatis의 동적 쿼리에 대하여 질문이 있습니다.

4,227 views
Skip to first unread message

GoodwillDD

unread,
Feb 9, 2012, 11:47:40 PM2/9/12
to Korea Spring User Group
안녕하세요. ^^

myBatis 동적 쿼리에 대해서 질문이 있습니다.

게시판에서 목록 검색하는 쿼리입니다.

<select id="getList" resultType="Board"
parameterType="BoardParameter">

select *
from ${boardName}
<if test="searchValue != null and searchValue != ''">
where ${searchField} like concat('%',#{searchValue},'%')
</if>
order by ref desc, step asc
limit ${limit_snum}, ${limit_enum}


</select>

이런 쿼리가 있는데..

@Select 형식으로 변환하는데.. <IF> 부분은 어떻게 해야되는지^^;;

구글링을 해보아도 찾기가 쉽지 않네요..

혹시 이 부분을 어떻게 변환해야되는지 아시는분이 계시면 도움 부탁드립니다.

고종봉

unread,
Feb 10, 2012, 1:27:30 AM2/10/12
to ks...@googlegroups.com
이걸 참고로 하시고,, 자세한 내용은 각 키워드별로 구글링 해보세요..ㅎ

<dynamic prepend="WHERE">
<isNotEmpty property="searchKey" prepend="AND">
<isEqual property="searchKey" compareValue="name" prepend="AND">
$searchKey$ like #searchValue#
</isEqual>
<isEqual property="searchKey" compareValue="tags" prepend="AND">
<iterate property="searchTagList" open="(" close=")" conjunction=",">
#searchTagList[]#
</iterate>
</isEqual>
</isNotEmpty>
</dynamic>  


2012년 2월 10일 오후 1:47, GoodwillDD <kr.goo...@gmail.com>님의 말:

--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.


전성욱

unread,
Feb 10, 2012, 1:48:20 AM2/10/12
to ks...@googlegroups.com
         <where>
             <if test="cid != '' and cid != null">
              and cid = #{cid}
             </if>
             <if test="bcode != '' and bcode != null">
              and bcode = #{bcode}
             </if>
             <if test="is_notice_yn != '' and is_notice_yn != null">
              and is_notice_yn = #{is_notice_yn}
             </if>
             <if test="keyword != '' and keyword != null">
              <if test="target != '' and target != null">
              and ${target} like '%${keyword}%'
              </if>
              <if test="target == '' || target == null">
              and (subject like '%${keyword}%' or content like '%${keyword}%') 
              </if>
             </if>
         </where>

myBatis는 동적쿼리를 위에 처럼 사용하시면 됩니다.
myBatis에 가시면 도큐멘트 문서 pdf로 한글 문서가 있습니다. 그거 참고 하시면 됩니다

2012년 2월 10일 오후 3:27, 고종봉 <mercu...@gmail.com>님의 말:

allforu0

unread,
Feb 10, 2012, 1:52:19 AM2/10/12
to ks...@googlegroups.com
ibatis랑 mybatis랑 많이 다른지... #variable_name# 도 #{variable_name}로 바뀐거 같고
<isNotEmpty...등도 사용가능하지만 <if 역시 사용 가능한 것 같네요. 메뉴얼 보니깐;

글고 @Select 형식으로 변환 한다고 하신게... 어노테이션을 쓰시겠다는 거 아닌가요? 


2012년 2월 10일 오후 3:27, 고종봉 <mercu...@gmail.com>님의 말:
이걸 참고로 하시고,, 자세한 내용은 각 키워드별로 구글링 해보세요..ㅎ

전성욱

unread,
Feb 10, 2012, 1:50:10 AM2/10/12
to ks...@googlegroups.com
http://mybatis.googlecode.com/files/MyBatis-3-User-Guide_ko.pdf

이 파일의 동적 쿼리 부분을 참고 하셔도 될거 같네요. 

2012년 2월 10일 오후 3:48, 전성욱 <allne...@gmail.com>님의 말:

GoodwillDD

unread,
Feb 10, 2012, 1:54:36 AM2/10/12
to Korea Spring User Group
답변 감사합니다^^;;
제가 원하는것은.. 어노테이션에서 동적 쿼리를 어떻게 사용하는가 입니다^^;;

질문이 모호했나봐요^^;;


On 2월10일, 오후3시52분, allforu0 <allfo...@gmail.com> wrote:
> ibatis랑 mybatis랑 많이 다른지... #variable_name# 도 #{variable_name}로 바뀐거 같고
> <isNotEmpty...등도 사용가능하지만 <if 역시 사용 가능한 것 같네요. 메뉴얼 보니깐;
>
> 글고 @Select 형식으로 변환 한다고 하신게... 어노테이션을 쓰시겠다는 거 아닌가요?
>

> 2012년 2월 10일 오후 3:27, 고종봉 <mercujj...@gmail.com>님의 말:


>
>
>
>
>
>
>
> > 이걸 참고로 하시고,, 자세한 내용은 각 키워드별로 구글링 해보세요..ㅎ
>
> > <dynamic prepend="WHERE">
> > <isNotEmpty property="searchKey" prepend="AND">
> > <isEqual property="searchKey" compareValue="name" prepend="AND">
> > $searchKey$ like #searchValue#
> > </isEqual>
> > <isEqual property="searchKey" compareValue="tags" prepend="AND">
> > <iterate property="searchTagList" open="(" close=")" conjunction=",">
> > #searchTagList[]#
> > </iterate>
> > </isEqual>
> > </isNotEmpty>
> > </dynamic>
>

> > 2012년 2월 10일 오후 1:47, GoodwillDD <kr.goodwil...@gmail.com>님의 말:


>
> > 안녕하세요. ^^
>
> >> myBatis 동적 쿼리에 대해서 질문이 있습니다.
>
> >> 게시판에서 목록 검색하는 쿼리입니다.
>
> >> <select id="getList" resultType="Board"
> >> parameterType="BoardParameter">
>
> >> select *
> >> from ${boardName}
> >> <if test="searchValue != null and searchValue != ''">
> >> where ${searchField} like
> >> concat('%',#{searchValue},'%')
> >> </if>
> >> order by ref desc, step asc
> >> limit ${limit_snum}, ${limit_enum}
>
> >> </select>
>
> >> 이런 쿼리가 있는데..
>
> >> @Select 형식으로 변환하는데.. <IF> 부분은 어떻게 해야되는지^^;;
>
> >> 구글링을 해보아도 찾기가 쉽지 않네요..
>
> >> 혹시 이 부분을 어떻게 변환해야되는지 아시는분이 계시면 도움 부탁드립니다.
>
> >> --
> >> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> >> 이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
> >> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.

> >> 더 많은 옵션을 보려면http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.

GoodwillDD

unread,
Feb 10, 2012, 2:01:03 AM2/10/12
to Korea Spring User Group
아.. 자세히 살펴보니.. SelectBuilder 라는 부분이 있네요^^:;

도움 감사합니다.

Reply all
Reply to author
Forward
0 new messages