๋ชฉ์ฐจ
pagination
์ด๊ฑด ์คํ๋ง์๋ง ๊ตญํ๋ ๊ธฐ์ ์ ์๋๊ณ ์น ์ ๋ฐ์ ์ผ๋ก ์ฐ์ด๋ ๊ธฐ์ ์
ํ๋ฉด์ ํ์ด์ง๋ค์ด์
์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด์๋ ์ฐ์ ์ ์ผ๋ก ํฌ๊ฒ ๋ค์๊ณผ ๊ฐ์ ์ ๋ณด๋ค์ด ํ์ํจ
- ํ์ฌ ํ์ด์ง ๋ฒํธ(page)
- ์ด์ ๊ณผ ๋ค์์ผ๋ก ์ด๋ ๊ฐ๋ฅํ ๋งํฌ์ ํ์ ์ฌ๋ถ(prev, next)
- ํ๋ฉด์์ ๋ณด์ฌ์ง๋ ํ์ด์ง์ ์์ ๋ฒํธ์ ๋ ๋ฒํธ(startPage, endPage)
์ค๋ผํด์ ๊ธฐ์ค์ผ๋ก ์ค๋ช
1.์ธ๋ผ์ธ๋ทฐ์์ rownum์ด ํํธ๋ฅผ ์ด์ฉํด์ DESC ์ ๋ ฌ๋ก 1๋ฒ ~ 20๋ฒ๊น์ง ๋ฐ์ดํฐ๋ฅผ ๊ตฌํจ
2.๋ฐ๊นฅ์ชฝ SELECT๋ฌธ์์ ์ธ๋ผ์ธ๋ทฐ์์ ๋์จ 1 ~ 20๋ฒ๊น์ง์ ๋ฐ์ดํฐ ์ค ์กฐ๊ฑด์ด rn์ด 10๋ณด๋ค ํฐ ๋ฐ์ดํฐ๋ง ๊ตฌํจ(์ธ๋ผ์ธ๋ทฐ์ ๊ฒฐ๊ณผ์ค 11๋ฒ๋ถํฐ 20๋ฒ๊น์ง์ ๋ฐ์ดํฐ๋ง ์กฐํ๋จ
(BNO:10589495 ~ BNO:10589486์ ๋ฐ์ดํฐ์ ํด๋น๋จ)ํ๋ฉด์์ 2ํ์ด์ง์ ํด๋น๋๋ ๋ฐ์ดํฐ์)
์ด๋ฅผ mybatis์์ ์ฟผ๋ฆฌ๋ก ํ๋ฉด ์๋์ ๊ฐ์
pagination์ ์ํ ๊ณต์
ํ์ด์ง์ ๋๋ฒํธ(endPage)๊ณ์ฐ ๊ณต์
ํํ์ด์ง์ ๋ณด์ฌ์ค ๊ฒ์๊ธ์ ๊ฐฏ์๋ 10๊ฐ๋ผ๊ณ ๊ฐ์
๋ํ์ด์ง(endPage)๋ ์ ์ฒด ๋ฐ์ดํฐ์(total)์ ์ํด ์ํฅ์ ๋ฐ์, ์๋ฅผ ๋ค์ด 10๊ฐ์ฉ ๋ณด์ฌ์ฃผ๋ ๊ฒฝ์ฐ ์ ์ฒด ๋ฐ์ดํฐ ์๊ฐ 80๊ฐ๋ผ๊ณ ๊ฐ์ ํ๋ฉด ๋๋ฒํธ๋ 10์ด ์๋ 8์ด ๋์ด์ผ ํจ
๊ทธ๋ฌ๋ฏ๋ก ๋๋ฒํธ(endPage)์ ํํ์ด์ง๋น ์ถ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ์(amount)์ ๊ณฑ์ด ์ ์ฒด๋ฐ์ดํฐ ์๋ณด๋ค ํฌ๋ค๋ฉด ๋๋ฒํธ๋ ๋ค์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋ค์ ๊ณ์ฐ๋์ด์ผ ํจ
๋จผ์ ์ ์ฒด ๋ฐ์ดํฐ ์(total)๋ฅผ ์ด์ฉํด์ ์ค์ ๋ ํ์ด์ง(realEnd)๊ฐ ๋ช ๋ฒ๊น์ง ๋๋์ง๋ฅผ ๊ณ์ฐํ ๋ค ๋ง์ผ ์ค์ ๋ ํ์ด์ง๊ฐ ๊ตฌํด๋ ๋๋ฒํธ๋ณด๋ค ์๋ค๋ฉด
์ค์ ๋ํ์ด์ง๊ฐ์ ๋ํ์ด์ง๊ฐ์ ๋์
ํด์ผ ํจ
์ด์ (prev)์ ๊ฒฝ์ฐ๋ ์์๋ฒํธ(startPage)๊ฐ 1๋ณด๋ค ํฐ ๊ฒฝ์ฐ๋ผ๋ฉด ์กด์ฌํ๋ฉด ๋จ, ์์๋ฒํธ๊ฐ 1๋ณด๋ค ํฐ ๊ฒฝ์ฐ๋ผ๋ฉด ์์๋ฒํธ๊ฐ 11์ธ ๊ฒฝ์ฐ๋ถํฐ ํด๋น๋จ
๋ค์(next)์ ๊ฒฝ์ฐ๋ ์ค์ ๋๋ฒํธ(realEnd)๊ฐ ๋๋ฒํธ(endPage)๋ณด๋ค ํฐ ๊ฒฝ์ฐ์๋ง ์กด์ฌํ๋ฉด ๋จ
์์ ๊ฐ์ด back๋จ(java)์์ ๊ตฌํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ controller์์ model์ ๋ด์ ๋ค ํ๋ฉด๋จ(jsp)์ผ๋ก ๋ณด๋ธ ํ ํ๋ฉด๋จ์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ํ์ํด์ฃผ๋ฉด ๋จ
์ถ์ฒ: ์ฝ๋๋ก ๋ฐฐ์ฐ๋ ์คํ๋ง ์น ํ๋ก์ ํธ(๊ฐ์ ํ)

'IT > development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring]spring REST(Representational State Transfer) (1) | 2022.11.27 |
---|---|
[Spring]UriComponentsBuilder(์๋ฒ๋จ์์ ๋์ ์ผ๋ก URI ์์ฑ) (0) | 2022.11.27 |
[Spring]spring ํ๋ ์ ํ ์ด์ (์น)๊ณ์ธต์ CRUD ๊ตฌํ ์ MockTest (0) | 2022.11.27 |
[Spring]๋จ์ํ ์คํธ jUnit (0) | 2022.11.27 |
[Spring]spring 404 ์๋ฌ ํ์ด์ง ์ฒ๋ฆฌ (1) | 2022.11.27 |
๋๊ธ