PC Program/Debug

Mybatis Where절 쓰기

너굴너굴울어봐 2020. 8. 18. 17:42
반응형

Project 를 진행 하는 중에 Mybatis로 MySQL textsets Table에서 동적으로 쿼리를 작성하고자 찾아보니

 

아주 좋은게 있었다...

 

 

바로 Where 절인데 아래처럼 

 

 select 
			num,
    		korea,
    		english,
    		china,
    		poland,
    		ukraine,
    		ranking
   from
   			textsets
  where
  			num = #{num}
    		AND korea = #{korea}
    		AND english = #{english}
    		AND china = #{china}
    		AND poland = #{poland}
    		AND ukraine = #{ukraine}
    		AND ranking = #{ranking}

 

여러 조건으로 AND 를 넣고 싶은데 모든 항목이 있을 때도 있고 없을 때도 있어서 난감하던 차에

 

mybatis where절 사용해보고 띠용... 

 

첫 num가 없을 경우 

 

where AND korea 이런식으로 되는데 이 부분이 문법에 어긋나기 때문에 어떡하나 고민했으나..

 

mybatis가 알아서 처음 조건의 AND를 빼준다니... 

 

적용 후 MySQL 문법은 아래와 같다... ㅎㅎ 세상 좋넹..

 

<select id="selectTranslate" parameterType="translateVO" resultType="hashMap">
		<![CDATA[
			SELECT 
					Num,
				    korea,
				    english,
				    china,
				    poland,
				    ukraine,
				    ranking
		     FROM
		  	 		textsets
		]]>
			<where>
		   		 <if test="korea != null">
			   		 <![CDATA[
			   		 	AND korea = #{korea}
			   		 ]]>
		   		 </if>
		   		 <if test="english != null">
			   		 <![CDATA[
			   		 	AND english = #{english}
			   		 ]]>
			   		 </if>
		   		 <if test="china != null">
			   		 <![CDATA[
			   		 	AND china = #{china}
			   		 ]]>
		   		 </if>
		   		 <if test="poland != null">
			   		 <![CDATA[
			   		 	AND poland = #{poland}
			   		 ]]>
		   		 </if>
		   		 <if test="ukraine != null">
			   		 <![CDATA[
			   		 	AND ukraine = #{ukraine}
			   		 ]]>
		   		 </if>
			</where>
		   			
		
	</select>

 

반응형