Framework

[MyBatis] : select : Spring๊ณผ ์—ฐ๋™ ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋กœ DB ์กฐํšŒ

๐ŸŒŸ Sean ๐ŸŒŸ 2025. 2. 10. 13:34

1. ์–ด๋…ธํ…Œ์ด์…˜์„ ํ™œ์šฉํ•œ select ๋ฌธ

MyBatis ์—๋Š” @Select ์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•ด์„œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

* ์ฃผ์˜ : ๊ตฌ๋ฌธ ๋์— ' ; ' ์„ ์ด์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

์–ด๋…ธํ…Œ์ด์…˜ @Select ํ™œ์šฉ

2. XML์„ ํ™œ์šฉํ•œ select ๋ฌธ

MyBatis๋ฅผ ์ด์šฉํ•  ๋•Œ๋Š” SQL์„ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

XML ํŒŒ์ผ์— SQL ์„ ์ž‘์„ฑํ•˜๋Š” ์ด์œ ๋Š” SQL์ด ๊ธธ์–ด์ง€๋ฉด ์ด๋ฅผ ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ณ€๊ฒฝ๋˜๋ฉด

ํ”„๋กœ์ ํŠธ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœ ํŒŒ์ผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

์–ด๋…ธํ…Œ์ด์…˜์ด ์•„๋‹Œ XML ํ™œ์šฉ ์ธํ„ฐํŽ˜์ด์Šค ์ž‘์„ฑ

 

XML์„ ์ž‘์„ฑํ•  ๋•Œ๋Š” <mapper> ํƒœ๊ทธ์˜ namespace ์†์„ฑ์„ ๋ฐ˜๋“œ์‹œ ๋งคํผ ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๊ฒŒ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.

<select> ํƒœ๊ทธ์—๋Š” ๊ตฌ๋ฌธ์˜ ์ด๋ฆ„(id)๊ณผ ๋ฉ”์„œ๋“œ ๋ช…์„ ์ผ์น˜์‹œํ‚ค๊ณ , ๋ฐ˜ํ™˜ํƒ€์ž…(resultType)์„ ๋งž์ถฐ์ค˜์•ผ ํ•œ๋‹ค

XML ํŒŒ์ผ ์ž‘์„ฑ

 

3. select ์—˜๋ฆฌ๋จผํŠธ ์†์„ฑ

<select id="getNow" resultType="String">
  • id : java ํŒŒ์ผ์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ๋งค์นญํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ์˜ ์ด๋ฆ„
  • parameterType : ๊ตฌ๋ฌธ์— ์ „๋‹ฌ๋  ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ํด๋ž˜์Šค๋ช…์ด๋‚˜ ๋ณ„์นญ
  • resultMap : ์™ธ๋ถ€ resultMap์„ ๋ฐ˜ํ™˜ํƒ€์ž…์œผ๋กœ ์ฐธ์กฐ
  • resultType : ๋ฆฌํ„ด๋˜๋Š” ๊ธฐ๋Œ€ํƒ€์ž…์˜ ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ํด๋ž˜์Šค๋ช…์ด๋‚˜ ๋ณ„์นญ

resultType์ด collection์ธ ๊ฒฝ์šฐ, collection ํƒ€์ž… ์ž์ฒด๊ฐ€ ์•„๋‹Œ collection์ด ํฌํ•จ๋œ ํƒ€์ž…์ด ๋  ์ˆ˜ ์žˆ๋‹ค.