Skip to content

Files

Latest commit

8388b53 ยท Oct 13, 2021

History

History
43 lines (24 loc) ยท 2.58 KB

mybatis_-_parameter_.md

File metadata and controls

43 lines (24 loc) ยท 2.58 KB

mybatis ์—์„œ ๋™์  ์ฟผ๋ฆฌ๋ฅผ ์œ„ํ•œ ์—ฌ๋Ÿฌ๊ฐœ์˜ input parameter ์ฒ˜๋ฆฌ

์ด๋ฒˆ Spring์„ ํ•˜๋ฉด์„œ mybatis๋ฅผ ์ด์šฉํ•  ์ผ์ด ์ƒ๊ฒผ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์–ด๋ณธ๋‹ค.

์‹ค์ œ๋กœ paging ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” ๋งŽ์€ ์˜ˆ์‹œ๊ฐ€ ์žˆ๋‹ค.

๊ทผ๋ฐ ๊ฒฐ๊ตญ paging์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ SQL์„ ํ†ตํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ๋กœ ํ–ˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์—ˆ๋‹ค.

when์„ ํ†ตํ•œ ๋™์  ์ฟผ๋ฆฌ ์ฒ˜๋ฆฌ์˜€๋Š”๋ฐ, parameter๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.

๋ฌธ์ œ๋Š” mybatis๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ parameter๋ฅผ ์ฒ˜๋ฆฌํ• ์ˆ˜ ์—†๊ฒŒ๋” ์ฒ˜๋ฆฌํ–ˆ๋‹ค.

๊ฒฐ๊ตญ ์šฐ๋ฆฌ๊ฐ€ service์—์„œ ์ด๋ฉ”์†Œ๋“œ๋ฅผ ๋Š˜๋ ค์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด DAO์—์„œ sqlSession์„ํ†ตํ•ด์„œ ์‹คํ–‰์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Sqlsession์—์„œ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ ๋ฉ”์†Œ๋“œ์ค‘ selectList ๋ฅผ ํ™•์ธํ•ด๋ณด์ž๋ฉด, ์‹ค์ œ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ object ์™ธ์—๋Š” ์—†๋‹ค.

์ฆ‰, ๋‘๊ฐœ์ด์ƒ์˜ parameter๋ฅผ ๋ชป ๋„ฃ๋Š” ๊ตฌ์กฐ๋กœ ์„ค๊ณ„๊ฐ€ ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ ์• ์ดˆ์— ๋‹ค์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•œ๊ฐœ์— ๋„ฃ๋Š” ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๊ฒƒ์ด๋‹ค.

์กฐ๊ธˆ ๋…ผ์ ์— ๋ฒ—์–ด๋‚œ ์ด์•ผ๊ธฐ๊ธด ํ•˜์ง€๋งŒ, ๊ทธ๋ž˜๋„ RowBound ๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

RowBound๋Š” ํŠน์ •๊ฐฏ์ˆ˜๋งŒํผ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฑด๋„ˆ๋„๋Š” ์ฒ˜๋ฆฌ๋ฅผํ•ด์ฃผ๊ฒŒ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๊ธดํ•œ๋‹ค.

๋ฌธ์ œ์ ์ด ํ•˜๋‚˜ ์žˆ๋Š”๊ฑฐ ๋นผ๊ณ ๋Š” ๊ทธ ๋ฌธ์ œ์ ์€ ๊ฒฐ๊ตญ ๋ช‡๊ฐœ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฐ€์— ๋”ฐ๋ผ์„œ ์†๋„ ์ฐจ์ด๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋˜๋Š”๋ฐ,

์‹ค์ œ๋กœ 10000๋ฒˆ์งธ๋ถ€ํ„ฐ ๋ณด๊ณ  ์‹ถ์œผ๋ฉด ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ 10000๊ฐœ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  10๊ฐœ๋ฅผ ๋„์šฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋ฒ„๋ฆฐ๋‹ค.

์‹ค์ œ๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค ๋Œ์–ด์™€์„œ ์•ˆ๋ณด์ด๊ฒŒ ๊ฐ€๋ ค๋†“์€ ๋ฐฉ์‹์ธ ๊ฒƒ

๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ๋ฐฐ์ œํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋ฐฉ์•ˆ๋„ ์žˆ๋‹ค.

์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์ž

๋งํฌ

๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„์™€์„œ

๋‘๊ฐœ์ด์ƒ์˜ parameter๋ฅผ ๋ชป ๋„ฃ๋Š” ๊ตฌ์กฐ๋กœ ์„ค๊ณ„๊ฐ€ ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ ์• ์ดˆ์— ๋‹ค์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•œ๊ฐœ์— ๋„ฃ๋Š” ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๊ฒƒ์ด๋‹ค.

๋ผ๋Š” ์กฐ๊ฑด๋•Œ๋ฌธ์— ์ด ์กฐ๊ฑด์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋‘๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•œ ๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋„ฃ๋Š” ๋ฐฉ์‹์€ Map์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

ํ˜น์€ ์•„์˜ˆ VO์— ๋„ฃ์–ด์„œ requestparameter๋ฅผ vo๋ฅผ ๋„ฃ๊ณ  ์ด ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹๋„ ์กด์žฌํ•œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ @param ์„ ํ†ตํ•ด์„œ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ช…์„ ์ธ์‹์‹œ์ผœ์„œ ๋„ฃ๋Š” ๋ฐฉ์‹๋„ ์กด์žฌํ•œ๋‹ค.