프로젝트 일지/Spring Boot & MyBatis - 게시판

게시판 페이징과 인덱스 수정 (2)

하나비 HANABI 2022. 8. 31. 15:08

 

https://jo-coder.tistory.com/28

 

4. 게시판 만들기 (페이징, 검색, 페이지 목록 갯수 변경하기)

testMapper.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> SELECT * FROM test AND testTitle lik..

jo-coder.tistory.com

 

 

https://to-dy.tistory.com/90

 

Spring 개발 - 게시판 만들기 #페이징 처리 (1)

이전에 만든 CRUD 게시판은 100개의 게시글이 있다면 한번에 100개의 게시글이 모두 보여진다. 정말 비효율적인 게시판이다..(ㅎ) 그래서 게시판 목록 페이징 처리를 하려고 한다. 그러면 좀 더 게

to-dy.tistory.com

 

원래 페이징 파라미터를 pageStart 하나만 주려고 했는데 pageSize(화면에 뿌려질 게시물의 개수)도 추가하였다

그리고 인덱스에 상관없이 일련의 게시물 번호를 출력하기 위해 rowNumber 함수 사용

 

BoardMapper.xml

	<!-- 게시물 목록 -->
	<!-- pageStart는 화면에 뿌릴 첫번쨰 게시물의 행(0부터 시작) -->
    <!-- pageSize는 화면에 뿌려질 게시물 개수-->
	<!-- <select> 태그를 이용하여 select 쿼리임을 나타냄 -->
    <!-- 앞서 mapper에서 말했던 메소드의 이름은 select 쿼리의 id값과 같아야함. -->
	<select id="boardList" parameterType="int" resultType="com.example.board.BoardDTO">	

			SELECT
				row_number() over(order by idx) as pIdx, title, writer, regdate
			FROM
				board_table
			ORDER BY idx desc
			LIMIT #{pageStart}, #{pageSize}

	</select>

 

 

모든 게시물 목록 메소드에 파라미터 추가

 

BoardMapper.java

// 게시물 목록
public List<BoardDTO> boardList(int pageStart, int pageSize) throws Exception;

 

BoardService.java

	// 게시물 목록
	List<BoardDTO> boardList(int pageStart, int pageSize) throws Exception;

 

BoardServiceImpl.java

// 게시물 목록
	@Override
	public List<BoardDTO> boardList(int pageStart, int pageSize) throws Exception {
		return boardMapper.boardList(pageStart, pageSize);
	}

 

BoardController.java

//게시물 목록
    @RequestMapping(value = "/openBoardList")
    public ModelAndView openBoardList(@RequestParam(value="pageStart") int pageStart, 
    				@RequestParam(value="pageSize") int pageSize) throws Exception{
		    	 	
    	// jsp파일 부르기 - 방법1
    	// return "BoardList"; (String 메소드로 변경)
    	   	
    	// jsp파일 부르기 - 방법2	   	
    	ModelAndView mv = new ModelAndView("/BoardList");    	
        List<BoardDTO> boardlist = boardService.boardList(pageStart, pageSize);  
        mv.addObject("list", boardlist);

        return mv;      
    }

 

postman으로 확인!

5개씩 페이징 해봄