게시판 예제의 페이징 처리를 위한 SQL문장
select * from ( select rownum rnum, num, writer, email, subject, pass,regdate, readcount, ref, step, depth, content, ip from ( select * from board order by ref desc, step asc)) where rnum>=? and rnum<=?; |
· Board테이블의 페이징을 위한 컬럼
o ref는 글그룹 번호
동일한 ref번호를 가지는 글에 대해 step과 depth를 이용하여 정렬함
o step은 답글의 순서
새로운 답글이 달리면 기존의 답글들의 step을 하나씩 증가
o depth는 답글의 깊이
답글에 답글이 달릴 때마다 증가된 값을 저장
· Ref기준으로 내림차순 정렬
o Ref가 같은 레코드는 step을 기준으로 오름차순 정렬
o 최근 글이 위로 보여지도록 정렬
· Rownum은 조회 결과에 레코드마다 붙여주는 가상 번호(1부터 시작)
· 위의 정렬된 결과를 이용하여 페이지 번호에 따라 가져올 개수가 정해짐
· 위 정보를 참고하여 list.jsp에서 목록이 보여지는 동작부터 확인한다.
o 페이지번호 클릭 시 서버로 요청되는 값이 어떻게 전달되는지 분석
o 예제는 sequence 2번부터 시작
o 20개의 게시글과 첫 번째 글에 답글 2개, 답글에 답글이 하나씩 등록된 상태
· list.jsp 또는 페이지 번호[1] 요청 시
· 페이지 번호[2] 요청 시
· 페이지 번호[3] 요청 시
· 위 내용을 참조하여 전체 페이징 흐름 분석하기.
추가>
[이전], [다음] 링크는 pageBlock값에 따라 나타남.
현재 예제는 pageBlock=5이므로 게시글이 10(pageSize)*5(pageBlock)=50
즉 50개 이상의 글이 등록되어야 표시됨.
'교육자료 > JSP' 카테고리의 다른 글
(교육자료)세션 이해하기 실습 (0) | 2018.09.06 |
---|---|
(교육자료)쿠키 이해하기 실습 (0) | 2018.09.06 |
세션개념 이해하기 (0) | 2018.09.03 |
쿠키개념 이해하기 (0) | 2018.09.03 |
(교육자료)게시판에 페이징 처리 및 답글 기능 구현하기 실습 (0) | 2018.09.03 |