[MyBatis] 마이바티스 foreach if문

(。◠ ◠。)·2023년 8월 23일
0

마이바티스에서 바인딩한 값에 뭘 붙여서 넣고싶을때

'AA${num}'
AA에${num}이 붙어서 db에 저장된다.

foreach안에 if 넣기

일단 리스트 만들어서 map에 실어서 보냄.

List<String> list = Arrays.asList("C001", "C002", "C003", "C004");
map.put("list",list);
<insert id="insert" parameterType="java.util.List">

	INSERT INTO tb
	(
		num,
		컬럼,
		regist_dt
	)
	VALUES 
	<foreach collection="list" item="num" open="" close="" separator=" , ">
		(
			#{num},
			<if test="num == 'C001'">
				#{c001},
			</if>
			<if test="num == 'C002'">
				#{c002},
			</if>
			<if test="num == 'C003'">
				#{c003},
			</if>
			<if test="num == 'C004'">
				#{c004},
			</if>
			now()
		)
	</foreach>

</insert>

이상했던 점
리스트에 "1","2"로 문자형 숫자만 실어 보내니 비교가 안되었다..
숫자에 =='1' 해서 그런가..
왜지..

profile
화이탱!

0개의 댓글