동적 쿼리문이란? 

- JSTL과 같이 <if> <when> <otherwise>를 사용하여 쿼리를 동적으로 사용할 수 있다. 
예시) 
<when test = '조건식'>
<when test = "조건식" > 


- 자주 실수하는 부분  -
조건식에서 연산자 사용시 && ||  가 아닌  and , or 를 사용
JSTL형태로 Mybatis에서 작성하는 경우

 

 

아래의 코드를 보면 Mapper에 choose 와 when , otherwise가  작성된것을 볼 수 있다 만약에 DAO에서 넘겨준 GAME_LEVEL의 값이 1단계일 경우 초보  , 2단계 일 경우 중수, 3단계 일 경우 고수로 데이터베이스에 저장된다 

	<insert id="insertGame" parameterType="String">
		INSERT INTO	GAME_EX (
					GAME_LEVEL,
					GAME_NAME)
		VALUES	 (
					<choose>
						<when test="productName.equals('1단계')">
							"초보"
						</when>
						<when test="productName.equals('2단계')">
							"중수"
						</when>
						<when test="productName.equals('3단계')">
							"고수"
						</when>
						<otherwise>
							"게임을 시작해주세요"											
						</otherwise>
					</choose>
					,
					#{GAME_NAME} )
		
	
	</insert>

 

복사했습니다!