Git :)

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MyBatis - SelectKey 활용하기
    DB/MyBatis 2023. 11. 8. 14:13

    # SelectKey 란?

    • 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에 공백이 들어가면 안되고 ',' 콤마로 분리한다.

    그림1