์ด๋ฒ 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 ์ ํตํด์ ํ๋ผ๋ฏธํฐ ๋ช ์ ์ธ์์์ผ์ ๋ฃ๋ ๋ฐฉ์๋ ์กด์ฌํ๋ค.