본문 바로가기

JSP/기본다지기

[JSP] 페이징(Paging) ④ [11월 30일]

이번에는

저번 게시물에서 임의로 지정해 주었던

totalCount(총 게시물의 갯수)를 DB에서 불러오는

메소드와 쿼리문을 작성해 보겠습니다.


MemberListController.java

1
2
int count = dao.getAllCount();
paging.setTotalCount(count);
cs

setTotalCount의 인자로 주었던 상수를 count 변수로 대체하고

count 변수에는 MemberDao에서 만든 getAllCount()메소드로

받아온 값을 대입시켜줍니다.


MemberDao.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public int getAllCount() {
    String sql = "SELECT COUNT(*) as count FROM member2";
    conn = DBManager.getConnection();
    int count = 0;
    try{
        stmt = conn.createStatement();
        rs= stmt.executeQuery(sql);
        if(rs.next()){
            count = rs.getInt("count");
        }
    }catch(SQLException e){
        e.printStackTrace();
    }finally{
        DBManager.Close(rs, stmt, conn);
    }
    return count;
 }
cs


MemberDao에 getAllCount()메소드를 만들어줍니다.


(member2 테이블의 레코드 갯수를 count해서 받아오는 기능.)


MemberListController.java

1
2
int count = dao.getAllCount();
paging.setTotalCount(count);
cs
1
paging.setPage(page);

cs


이제 MemberListController.java에서 상수를 파라미터로 넘겨주던 것을 count라는 변수를 만들어 위 메소드의 결과값을 반환해서 인자로 전달해주도록 해줍니다.


MemberDao.java

1
2
3
public List<Member> selectAllMember(Paging paging){        
    int startNum = paging.getStartNum();
    int endNum = paging.getEndNum();
cs


MemberDao.java의 selectAllMember 메소드에도 약간의 변화가 생겼습니다.


컨트롤러에서 직접 파라미터값을 int형으로 전달받던 것을 paging.java로 넘긴 후, 그 객체를 인자로 전달받도록 하였습니다.


startNum 변수와 endNum 변수도 paging객체로 전달해 준 후 getter를 이용하여 불러오도록 바꾸었습니다.


Paging.java

1
2
3
4
5
private int startNum;
private int endNum;
    
startNum = (page-1)*displayRow+1;
endNum = page*displayRow;
cs


Paging.java로 MemberDao.java의 selectAllMember() 메소드에 있던 startNum과 endNum을 이동시켜 주면 끝.


이제 페이징이 모두 마무리 되었습니다.


다음 수업에서는 게시판에 파일을 업로드하는 방법에 대해서 공부하겠습니다.

'JSP > 기본다지기' 카테고리의 다른 글

[JSP] 페이징(Paging) ③ [11월28일]  (1) 2016.11.29
[JSP] 페이징(Paging) ② [11월28일]  (2) 2016.11.29
[JSP] 페이징(Paging) ① [11월28일]  (0) 2016.11.29
JSP 8일차 필기 (EL 태그)  (0) 2016.10.28
JSP 7일차 필기 (Bean)  (0) 2016.10.26