#{값} => INSERT INTO 테이블 VALUES( );
${테이블 OR 컬럼명} 값 => SELECT * FROM 테이블명 WHERE NO LIKE '%' || 'a' || '%'
${테이블 OR 컬럼명} 값 => SELECT * FROM 테이블명 WHERE TITLE LIKE '%' || 'a' || '%'
${테이블 OR 컬럼명} 값 => SELECT * FROM 테이블명 WHERE CONTENT LIKE '%' || 'a' || '%'
이걸 다 적을 수 없기 때문에
${테이블 OR 컬럼명} 값 => SELECT * FROM ${tbl} WHERE ${col} LIKE '%' || 'a' || '%'
이렇게 쓸수가 있음
SELECT '${title}' TITLE, '${writer}' WRITER FROM DUAL
-->
<insert id="insertBoardBatch" parameterType="list">
<foreach collection="list" item="obj" separator="; ">
INSERT INTO BOARDTBL(NO, TITLE, CONTENT, WRITER, HIT, REGDATE )
VALUES (SEQ_BOARDTBL_NO.NEXTVAL, #{obj.title}, #{obj.content}, #{obj.writer}, #{obj.hit}, CURRENT_DATE)
</foreach>
<!-- h2 함수 생성 불가, UNION ALL 동작 안됨-->
<!-- INSERT ALL (시퀀스가 없을경우, 함수를 생성)-->
<!-- UNION ALL(시퀀스가 있는 경우)-->
</insert>
<update id="updateBoardBatch" parameterType="list">
UPDATE BOARDTBL SET
TITLE = (CASE
<foreach collection="list" item="obj" separator=" ">
WHEN NO=#{obj.no} THEN #{obj.title}
</foreach>
END),
WRITER = (CASE
<foreach collection="list" item="obj" separator=" ">
WHEN NO=#{obj.no} THEN #{obj.writer}
</foreach>
END),
HIT = (CASE
<foreach collection="list" item="obj" separator=" ">
WHEN NO=#{obj.no} THEN #{obj.hit}
</foreach>
END)
WHERE NO IN (
<foreach collection="list" item="obj" separator=", ">
#{obj.no}
</foreach>
)
</update>
<delete id="deleteBoardBatch" parameterType="list">
DELETE FROM BOARDTBL WHERE NO IN (
<foreach collection="list" item="tmp" separator=", ">
#{tmp}
</foreach>
)
</delete>