◆ MediaGroupCont.java
◇ int startPage = Pages*pagePerBlock +1;
→ 페이징 목록이 시작되는 숫자는(1, 11, 21···.) Pages(페이징 목록을 그룹화한것:1~10번페이지까지는 1, 11~20번
페이지까지는 2)에다가 pagePerBlock(페이지 리스트 : 한줄에 페이지 1번~10번까지만 띄우겠다)을 곱한 후 +1을 해줘
야한다 → +1을 안하면 0도 startPage가 되기때문에 오류 발생한다.
ex. startPage = (0 * 10) +1; = 1 (가장 첫 페이지리스트 목록 그룹의 첫 시작 페이징 번호)
↑Page = (현재페이지÷페이지리스트:1~10)값을 소수점 올림 후 -1한다.
ex. 1÷10 = 0.1 → 소수점 올림 = 1 → 1 - 1 = 0
11÷10 = 1.1 → 소수점올림 = 2 → 2 - 1 = 1
→ 이러면 startPage = (1*10)+1 = 11; 이 된다.
◇ int endPage = startPage + pagePerBlock -1;
→ 페이징 목록에서 마지막 숫자는(10, 20, 30···.) startPage(시작하는 페이지 숫자)에다가
pagePerBlock(페이지 리스트 : 한줄에 페이지 1번~10번까지만 띄우겠다)를 곱한 후 -1을 해준다.
ex. endPage = (1+10) - 1 = 10 (가장 첫 페이지리스트 목록 그룹의 마지막 페이징 번호)
◆ list.jsp
◇ ${endPage > pageCount} → true → endPage = pageCount;
→ 끝나는 페이지 번호(10, 20···.)이 pageCount = totalPage(전체 페이지 수 : 전체 글 개수 / 한 페이지에 띄울 글 개
수)보다 크면 endPage라는 변수에 pageCount 값을 넣는다 => endPage == pageCount
ex. 10 > 8 라고한다면 → true → endPage = 8; 이된다. (끝 페이지가 8이 됨)
◇ ${startPage > 1} → true → ${startPage-1} [이전]
→ 시작 페이지 번호가 (1,11···.) 1보다 크다면 시작페이지번호 - 1이라는 페이지 넘버에 이전 버튼을 삽입한다.
ex. 11 > 1 → true → 11- 1 = 10 위치에 이전 버튼 삽입 → [이전] [11] [12] [13] ···.
◇ <c:forEach var="i" begin="${startPage}" end="${endPage}">
→ 반복문(JSTL)의 시작 숫자를 스타트 페이지, 끝나는 수를 엔드페이지로해서 페이징 리스트를 불러온다
ex. i=11; i>=20 → 11, 12, 13 ··· 18, 19, 20 = 하나의 페이징 목록
◇ ${endPage < pageCount} → true → ${startPage + 10} [다음]
→ 끝나는 페이지 번호(10, 20···.)가 전체 페이지 수보다 작다면(=전체 페이지 수가 많다면) 시작페이지 번호에 +10을 한
페이지넘버 위치에 [다음]버튼을 삽입한다.
ex. 10 < 15 라고한다면 → true → 1 + 10 = 11 위치에 [다음] 삽입 → [8] [9] [10] [다음]
그룹번호 55번을 삭제 페이지로 넘겨줘야한다.
utility 파일 넣기 (myweb)에서 했던 것 복사
-- media_sql.txt
-- 미디어 테이블 생성
CREATE TABLE media (
mediano NUMBER NOT NULL PRIMARY KEY, -- 미디어 번호
title VARCHAR2(255) NOT NULL, -- 제목
poster VARCHAR2(255) DEFAULT 'poster.jpg' NOT NULL, -- 포스터 이미지
filename VARCHAR2(255) NOT NULL, -- 음원 파일명
filesize NUMBER DEFAULT 0 NOT NULL,
mview CHAR(1) DEFAULT 'Y' NOT NULL, -- 출력모드
rdate DATE NOT NULL, -- 등록일
mediagroupno NUMBER NULL -- 부모테이블 PK
);
-- 시퀀스 생성
create sequence media_seq;
commit;
웹과 DB서버를 왔다갔다하는데 시간이 오래걸리고 복잡하다.
분산형 시스템의 최적화
자동 객체 생성
@Autowired를 사용하면 MediaDAO 객체를 자동 생성해준다.
기본생성자, getter, setter, toString 생성
<a href="../media/list.do?mediagroupno=${dto.mediagroupno}">
파일 확인
02_스프링부트 JdbcTemplate기반 mymelon프로젝트_media
SELECT mediano, title, poster, filename, filesize, mview, mediagroupno
FROM media
WHERE mview='Y' AND mediagroupno=?
ORDER BY mediano DESC
FROM 미디어 테이블에서
WHERE 미디어뷰가 Y로 되어있고, 미디어그룹번호가 ?번인곳에
SELECT 미디어번호, 제목, 포스터이미지, 파일명, 파일크기, 미디어뷰, 미디어그룹번호를
ORDER BY 미디어번호 내림차순(10 → 1)으로 가져와주세요.