ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JDBC 마지막 페이지 구하기
    JDBC 2022. 2. 4. 23:06

    **유튜브 뉴렉쳐님의 강의를 들으면서 공부하고 정리한 내용입니다.

     

    레코드를 전체개수를 알아보는 COUNT 변수를 만들어보았는데 이것을 통해서 마지막 페이지와 현재 페이지를 구현해보자

     

    현재 페이지의 경우에는 우리가 저번 시간에 page 변수를 선언 한 것을 이용하면 된다.

    1,2 라고 적힌 부분을 마찬가지로 page 변수를 작성 해 준다. 

    그럼 이렇게 다음을 눌렀을 때에 페이지의 값이 변경이 되는 것을 확인 할 수 있다. 

    하지만 이렇게 되면 현재 몇번째 페이지만 알 수 있다. lasPage라는 변수를 줘서 마지막 페이지를 구해보자 

    이 lastPage 변수는 지역변수로 해야할지 전역변수로 해야할지 멤버변수로 해야할지 결정해야한다.

     

    지난시간의 count의 경우에는  지역변수로 만들지 않고 멤버변수로 만들었었다. 

    그 이유는 count의 경우는 list를 구할 때마다 count를 매번 다시 구해야한다. 그 이유는 list를 구할때마다 count값이 달라지기 때문이다.

     

    매번 구해줘야하기때문에 공유되어야 하는 멤버변수보다는 지역내에서 쓰이는 지역변수로 더 알맞다.

    lastPage 역시 count를 이용해서 지역적으로만 사용하는 지역변수로 사용하는것이 더 알맞을 것 같다. 

     

    lastPage의 경우에는 count를 기반으로 계산이 들어가야한다. 

    우리가 다루는 목록페이지는 한페이지가 총 10개의 레코드로 나누어져있다.

    그치만 우리가 가지고 있는 레코드 개수가 10 단위로 정해져있는게 아니라면 때문에 나누기 10을 해도 정확히 마지막 페이지가 안나올수도 있다.

    실행해서 확인해본다면

    내가 가진 레코드는 74개이므로 7페이지까지만 나타나고 나머지 4개의 게시물은 불러 올 수 없게 된다.

     

     

    이때 int lastPage = count/10; 이 식 밑에다가 페이지의 나머지값을 삼항연산자로 넣어주면 된다 . 

    int lastPage = count/10; //count를 기반으로 계산 
    lastPage = count%10 == 0 ?  lastPage:lastPage+1; 
    //10으로 나눠서 딱떨어지면 lastpage 그렇지 않다면 lastpage를 하나 더 보여줘 라는 것

    아까 page,page해줬던걸 page,lastPage 해주고 실행해주면

    현재페이지와 마지막 페이지가 같이 뜨는 것을 확인 할 수 있다. 

     

     

    이제 마지막 페이지에서 넘어가려고 할 경우 에러 메세지를 나타내줘야한다.

    	public void moveNextList() {
    		//next의 문제점은 어디가 마지막 페이지인지 알 수 없다.
    		//마지막 페이지를 구하는 로직을 구현하기 전까지는 주석처리
    		if(page == lastPage) { //계속 이전으로 갈 수 없으니 조건문을 줘서 page값이 1일 경우
    		System.out.println("=========================");
    		System.out.println("[ 다음 페이지가 없습니다. ]"); //라고 출력하기
    		System.out.println("=========================");
    		return;
    		
    	}
    	page++;
    	}
    }

    이렇게 해 줬더니 lastPage변수에 빨간줄이뜬다..

    아까 지역변수로 만들어주어서가 아니라 우리가 public void moveNextList() 이것을 호출 할 때에는 

    그렇기 때문에 lastPage의 경우는 public void moveNextList() 이것이 호출 될 때에 다시 또 서비스를 호출해서 정말 라스트페이지가 맞는지 확인 해야하는 것이다. 

    위에 작성했던 라스트페이지 구하는 연산식을 다시 가져와주고 예외처리는 던져준다.

    그럼 마지막 페이지에 도달 했을 때에 경고 메세지가 출력이 된다.

     

    'JDBC' 카테고리의 다른 글

    JDBC 검색 메뉴 구현하기  (0) 2022.02.04
    JDBC 게시글 개수 구하기  (0) 2022.02.04
    JDBC로 이전/다음 페이지 구현  (0) 2022.02.04
    JDBC 목록 View 생성  (0) 2022.02.04
    JDBC 페이징 쿼리  (0) 2022.02.03
Designed by Tistory.