Insert, Update, Delete 전, 후 SELECT가 필요한 경우에 사용하는 MyBatis 문법
# 사용법
<update id="increasePartEvent" parameterType="EventRewardDTO">
UPDATE TBM_EVENT_DTL
SET PARTICIPATION_CNT = PARTICIPATION_CNT + 1
WHERE 1=1
AND CP_CD = #{cpCd}
AND EVENT_CD = #{eventCd}
AND USE_YN = 'Y'
AND DEL_YN = 'N'
<selectKey order="AFTER" resultType="Map" keyProperty="participationCnt,totalPartLimitCnt" keyColumn="PARTICIPATION_CNT,TOTAL_PART_LIMIT_CNT">
SELECT A.PARTICIPATION_CNT
,A.TOTAL_PART_LIMIT_CNT
FROM TBM_EVENT_DTL AS A
WHERE 1=1
AND A.CP_CD = #{cpCd}
AND A.EVENT_CD = #{eventCd}
AND A.USE_YN = 'Y'
AND A.DEL_YN = 'N'
</selectKey>
</update>
'order' 항목은 After 또는 Before를 적을 수 있다. 각 의미별로 CUD 전에 수행할 것 인지, 후에 수행할 것 인지를 나타낸다.
resultType은 결과값을 나타낸다.
keyProperty는 '그림1'의 빨간색 테투리 변수안에 있는 변수명 항목이다.
eventRewardDTO 클레스의 participationCnt와 totalPartLimitCnt 변수에 해당 값이 들어간다. (새로운 값이 return 되는 것이 아니다.)
keyProperty와 keyColumn의 각 element에 공백이 들어가면 안되고 ',' 콤마로 분리한다.