νμ΄μ§ μ²λ¦¬λ μ¬μ©μμκ² νμν μ΅μνμ λ°μ΄ν°λ₯Ό μ μ‘νκΈ° μν΄ μ 체 λ°μ΄ν° μ€μμ μΌλΆλΆλ§μ 보μ¬μ£Όλ λ°©μμ μλ―Ένλλ° νμ΄μ§ μ²λ¦¬λ₯Ό μν΄ μλμ κ°μ 3λ¨κ³λ₯Ό κ±°μ³ κ΅¬ννκ² λ©λλ€.
- URIμ λ¬Έμμ΄μ μ‘°μ ν΄ μνλ νμ΄μ§μ λ°μ΄ν°κ° μΆλ ₯λκ² νλ 1λ¨κ³
- λͺ©λ‘ νμ΄μ§ νλ¨μ νμ΄μ§ λ²νΈλ₯Ό 보μ¬μ£Όκ³ , λ²νΈλ₯Ό ν΄λ¦νλ©΄ ν΄λΉ νμ΄μ§λ‘ μ΄λνλ 2λ¨κ³
- λͺ©λ‘ νμ΄μ§μμ μ‘°νλ μμ μμ μ ν λ€, λ€μ μλ λͺ©λ‘ νμ΄μ§λ‘ μ΄λν μ μκ² μ²λ¦¬νλ 3λ¨κ³
νμ΄μ§ μ²λ¦¬λ λ€μκ³Ό κ°μ μμΉμ μ§μΌμΌν©λλ€.
- νμ΄μ§ μ²λ¦¬λ λ°λμ GET λ°©μλ§μ μ¬μ©ν©λλ€.
- νμ΄μ§ μ²λ¦¬κ° λλ©΄ μ‘°ν νλ©΄μμ λ°λμ λͺ©λ‘μΌλ‘ μ΄λν μ μμ΄μΌ ν©λλ€.
μ) κ²μνμ 4 νμ΄μ§λ₯Ό 보λ€κ° νΉμ κ²μλ¬Όμ μ‘°ννκ³ ,
λͺ©λ‘μΌλ‘ μ΄λν κ²½μ° λ€μ 4 νμ΄μ§λ‘ μ΄λν μ μμ΄μΌ ν©λλ€. - νμ΄μ§ μ²λ¦¬λ λ°λμ νμν νμ΄μ§ λ²νΈλ§μ μ 곡ν΄μΌ ν©λλ€.
λ§μ½ νμ΄μ§λΉ 10κ°μ κ²μκΈμ μΆλ ₯νκ³ , μ 체 λ°μ΄ν°κ° 41건μ΄λΌλ©΄, 5 νμ΄μ§κΉμ§ νλ©΄μ μΆλ ₯λμ΄μΌ ν©λλ€.
MySQL LIMIT
SELECT *
FROM ν
μ΄λΈλͺ
LIMIT μμ λ°μ΄ν°, μΆλ ₯ν λ°μ΄ν° κ°μ
LIMITμ μ¬μ©νλ λ°©λ²μ κ°λ¨ν©λλ€.
λ§μ½ κ²μκΈμ 10κ±΄μ© μΆλ ₯νκ³ , 첫λ²μ§Έ νμ΄μ§λ₯Ό μΆλ ₯νκ³ μΆλ€λ©΄ μλμ κ°μ΄ μμ±νλ©΄ λ©λλ€.
SELECT articleNo, title, content, writer, regDate, viewCnt
FROM tb_article
WHERE articleNo > 0
ORDER BY articleNo DESC, regDate DESC
LIMIT 0, 10
μ§κΈκΉμ§ μμ±νλ ArticleMapper.xmlμ SQLμ μ΄ν΄λ΄ μλ€.
- ArticleMapper.xml: λ§μ½ ν νμ΄μ§μ 보μ¬μ§λ λ°μ΄ν°κ° 10κ°κ° μλλΌλ©΄,
LIMIT ꡬ문μ λ§μ§λ§μ 10μ΄λΌλ μ«μκ° λ³κ²½λμ΄μΌλ§ ν©λλ€.
μ΄λ¬ν λ¬Έμ μ μ ν΄κ²°νκΈ° μν΄ findAllArticlePaging()μ νλΌλ―Έν°λ₯Ό 2κ° λ°λ λ°©λ²μ΄ μμ΅λλ€.
νμ§λ§, λ§€λ² 2κ°μ μ μ ν λ°μ΄ν°λ₯Ό μ§μ λ겨μΌνλ λΆνΈν¨μ΄ λ°μν©λλ€.
κ·Έλμ, νμ΄μ§ μ²λ¦¬λ₯Ό λμμ€ Criteria ν΄λμ€λ₯Ό μμ±νκ³ , νμ΄μ§ μ²λ¦¬μ κΈ°μ€μ΄ λλ λ³μλ€μ νλμ κ°μ²΄λ‘ μ²λ¦¬νλ©΄
λ³΄λ€ νΈλ¦¬νκ² μ¬μ©ν μ μμ΅λλ€.
μ΄νμ μΆκ°μ¬νμ΄ μκΈ°λλΌλ λ©μλμ νλΌλ―Έν°λ₯Ό λλ¦¬μ§ μκ³ , κ°μ²΄μ νλλ₯Ό μΆκ°ν¨μΌλ‘μ¨ λ³΄λ€ κ΄λ¦¬κ° μ©μ΄ν΄μ§λλ€.
νμ΄μ§ μ²λ¦¬ ꡬνμ μν΄ κΈ°μ΅ν΄λμ΄μΌ ν μ¬νλ€μ μμ½ν΄λ³΄λλ‘ νκ² μ΅λλ€.
1. μμ νμ΄μ§ λ²νΈ (startPage)
2. λ νμ΄μ§ λ²νΈ (endPage)
3. μ 체 κ²μκΈμ μ (totalCount)
4. μ΄μ λ§ν¬ (prev)
5. λ€μ λ§ν¬ (next)
Math.ceil(νμ¬ νμ΄μ§ λ²νΈ(page) / νμ΄μ§ λ²νΈμ μ(displayPageNumCount)) * νμ΄μ§ λ²νΈμ μ(displayPageNumCount)
(λ νμ΄μ§ λ²νΈ(endPage) - νμ΄μ§ λ²νΈμ μ(displayPageNumCount)) + 1
Math.ceil(μ 체 κ²μκΈμ μ(totalCount) / νμ΄μ§λΉ μΆλ ₯ν κ²μκΈμ μ(perPageNum))
(μμ νμ΄μ§ λ²νΈ(startPage) == 1) ? false : true
(λ νμ΄μ§ λ²νΈ(endPage) * νμ΄μ§λΉ μΆλ ₯ν κ²μκΈμ μ(perPageNum) >= μ 체 κ²μκΈμ μ(totalCount)) ? false : true
μ‘°ν, μμ , μμ μ²λ¦¬ ν, λ€μ νΉμ λͺ©λ‘ νμ΄μ§λ‘ μ΄λνκΈ° μν΄μλ
μλμ κ°μ μ 보λ₯Ό κ° νμ΄μ§λ₯Ό μ΄λν λλ§λ€ κ°κ³ μμ΄μΌ ν©λλ€.
- νμ¬ λͺ©λ‘ νμ΄μ§μ λ²νΈ (page)
- νμ΄μ§λΉ μΆλ ₯ν κ²μκΈμ μ (perPageNum)
- μ‘°ν κ²μκΈμ λ²νΈ (articleNo)