Spring
Spring 페이징 처리
0304호
2023. 2. 9. 18:25
페이징
페이징은 get방식으로 처리한다.
이동할 때 페이지 번호를 가지고 다닌다.
페이징 처리하는 로직을 클래스로 분류한다
->Criteria클래스, PageVO클래스
sql에 변경을 주는 클래스, sql로 화면을 그리는 클래스. (반드시는 아님)
MYSQL
오라클은 limit함수가 없어서 인라인뷰로 해줘야 한다.
MySQL에서 페이징은 limit함수를 이용한다!
limit(데이터시작, 데이터개수)
select * from table
order by num desc
limit 0,10;
1~10번 데이터가 조회된다.
select * from table
order by num desc
limit 10,20;
11번~30번 데이터가 조회된다.
select *
from trip order by tno desc limit 0,10; -- 1번에서 10개의 데이터
select * from trip order by tno desc limit 10,10; -- 11번에서 10개
select * from trip order by tno desc limit 10,50; -- 11번에서 50개
Critera클래스
-데이터시작과 데이터개수를 뽑아서 sql로 넘겨준다.
pageNum//페이지번호
count //몇개의 데이터를 보여줄건가.
기본생성자로 pageNum=1, count=10을 넣고
매개변수를 받는 생성자에서 사용자가 원하는 걸 넣어준다.
계산하는 메서드를 만들어서 sql문에 전달하게 해준다.
public int getPageStart() {
return (pageNum - 1) * count;
}
처럼.
pageNum은 클릭하는 페이지, count는 값이 변할 수 있으니 그대로.
1페이지를 누르면 (1-1)*10=0, 카운트는 10.
그래서 limit에서 0,10이 되니 1~10번 글을 뽑고,
가령 3페이지를 누르면 (3-1)*10=20, 카운트는 10.
->limit 20,10이니 21번~31번 글을 뽑는다.