...
[MyBatis] mybatis์์ ๋ค์ ์ํ์ค ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
KoB
2020. 12. 29. 16:39
<insert id="insertSubject" parameterType="wBMap">
<selectKey keyProperty="sn" resultType="int" order="BEFORE">
SELECT SBJECT_MASTR_SEQ.NEXTVAL FROM DUAL
</selectKey>
INSERT INTO SBJECT_MASTR (SBJECT_MASTR_SN, SBJECT_NM, SBJECT_CODE, SBJECT_CTGRY, EDC_TRGET, SRCHWRD, USE_YN, CM, REGIST_DT, REGIST_MBER_SEQ)
VALUES (#{sn}, #{sbject_nm}, 'ES'||LPAD(#{sn}, 6, 0), #{sbject_ctgry}, #{edc_trget}, #{srchwrd}, #{use_yn}, #{cm}, SYSDATE, #{mber_seq})
</insert>
์ค๋ผํด ๊ธฐ์ค์ ๊ธ์ ๋๋ค.
<selectKey> ํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ ํ์ฌ ์ํ์ค ๋ค์์ ์ํ์ค๋ฅผ ๊ฐ์ ธ์ฌ์ ์์ต๋๋ค.
ใ ฃSELECT SBJECT_MASTR_SEQ.NEXTVAL FROM DUAL
SBJECT_MASTR์ ๋ค์ ์ํ์ค๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํจ์ ๋๋ค. mysql์ auto increment ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. DUAL์ ์์ ํ ์ด๋ธ์ ๋๋ค.
๋ง์ฝ ํ์ฌ ์ํ์ค๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ๋ค๋ฉด CURRVAL์ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
# keyProperty
keyProperty๋ SELECT SBJECT_MASTR_SEQ.NEXTVAL FROM DUAL ์ ๊ฐ์ ๋ฐ๋ ๋ณ์์ ๋๋ค. ์์ ์ฝ๋์์๋ keyProperty = sn ์ด๋ฏ๋ก ๋ค์ ์ฟผ๋ฆฌ๋ฌธ์์ sn์ผ๋ก ์ํ์ค ๊ฐ์ ์ ๊ทผํ ์ ์๊ฒ ๋ฉ๋๋ค.
# order
order ๋ INSERT ๋ฌธ์ ์คํํ๊ธฐ ์ ์ ํ ๊ฑฐ๋ ํํ์ ํ ๊ฑฐ๋ ๊ฒฐ์ ํด์ฃผ๋ ๊ฒ์ธ๋ฐ before ์ด๋ฏ๋ก ์ฟผ๋ฆฌ๋ฌธ ์คํ์ ์ ๋๋ค. after๋ก ํ๊ฒ๋๋ฉด ์ฟผ๋ฆฌ๋ฌธ์ ์คํํ ํด๋น ์ฟผ๋ฆฌ๋ฅผ ์คํํฉ๋๋ค.
# resultType
resultType์ ๋ณ์๋ช ์์ ์์ ์๋ฏ ๋ฐํ๊ฐ์ ๋ฐ์ดํฐํ์ ๋๋ค.
<selectKey> ํ๊ทธ ๋ง๊ณ ์ ์ด๋ฏธ์ง์ฒ๋ผ VALUES์ ๋ฐ๋ก SEQ.NEXTVAL๋ฅผ ํด๋ ์๊ด์์ต๋๋ค.
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ง๋ฌธ์ ์ธ์ ๋ ํ์ํฉ๋๋ค.
"๋ ๋ฐ๋์ ๋ฐฑ์๋ ์์ด ๋ ๊ฑฐ์ผ"