프로젝트 일지/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
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개씩 페이징 해봄