๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Backend/mybatis

[mybatis]selectKey ์—˜๋ฆฌ๋จผํŠธ(insert ์—˜๋ฆฌ๋จผํŠธ์˜ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ)

by sukii 2024. 3. 7.
๋ฐ˜์‘ํ˜•

๐Ÿค”selectKey : SELECT ๋ช…๋ น์˜ ์‹คํ–‰๊ฒฐ๊ณผ๋กœ ๊ฐ’์„ ์ œ๊ณต๋ฐ›์•„ insert ์—˜๋ฆฌ๋จผํŠธ์˜ parameterType ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ๊ฐ์ฒด์˜ ํ•„๋“œ๊ฐ’์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ

=> insert ์—˜๋ฆฌ๋จผํŠธ์— ์ข…์†๋œ ์—˜๋ฆฌ๋จผํŠธ

=> ์ž๋™ ์ฆ๊ฐ€๊ฐ’ ๋˜๋Š” ๋‚œ์ˆ˜๊ฐ’์„ SELECT ๋ช…๋ น์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ฐ์ฒด ํ•„๋“œ์— ์ €์žฅํ•ด INSERT ๋ช…๋ น์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์„ฑ
โ–ช๏ธ resultType ์†์„ฑ : SELECT ๋ช…๋ น์œผ๋กœ ๊ฒ€์ƒ‰๋œ ๊ฒฐ๊ณผ๊ฐ’์„ ์ œ๊ณต๋ฐ›๊ธฐ ์œ„ํ•œ Java ์ž๋ฃŒํ˜•์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
   => J ava ์ž๋ฃŒํ˜• ๋Œ€์‹  typeAlias ์—˜๋ฆฌ๋จผํŠธ๋กœ ์„ค์ •ํ•œ ๋ณ„์นญ(AliasName) ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โ–ช๏ธ keyProperty ์†์„ฑ : insert ์—˜๋ฆฌ๋จผํŠธ์˜ parameterType ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค์˜ ํ•„๋“œ๋ช…์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • - ์ „๋‹ฌ๋ฐ›      ์€ ๊ฐ์ฒด์˜ ํ•„๋“œ๊ฐ’์œผ๋กœ ์ €์žฅ
โ–ช๏ธ order ์†์„ฑ : [BEFORE] ๋˜๋Š” [AFTER] ์ค‘ ํ•˜๋‚˜๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •

<insert id="insertComment2" parameterType="MyComment1">
	<selectKey resultType="int" keyProperty="commentNo" order="BEFORE">
		select mycomment_seq.nextval from dual
	</selectKey>
	insert into mycomment values(#{commentNo}, #{commentId}, #{commentContent}, sysdate)
</insert>

 

 

๋ฐ˜์‘ํ˜•