‘나의게시글’ 페이징과 동일

package com.spring.gami.mypage.like.controller;

@Controller("likeController")
@RequestMapping("/mypage/like")
public class LikeController {
	
	@Autowired
	MyhomeDomain myhomeDomain;
	@Autowired
	LikeService likeService;
	
	// 게시글 리스트 출력
    @RequestMapping(value = "/likeList.do", method = {RequestMethod.GET, RequestMethod.POST})
    public ModelAndView myHomelist(HttpSession session, HttpServletRequest request, HttpServletResponse response) throws Exception {

    	MemberDomain memberDomain = (MemberDomain) session.getAttribute("member");
    	String memberId = memberDomain.getMemberId();
    	
    	String _section = request.getParameter("section"); //사용자가 볼 게시글수
    	String _pageNum = request.getParameter("pageNum"); //페이지번호
    	int section = Integer.parseInt(((_section == null) ? "1" : _section));
    	int pageNum = Integer.parseInt(((_pageNum == null) ? "1" : _pageNum));
    	//페이징
    	int pageSize = 6; //한페이지에 보여줄 게시글수
    	int startRow = (pageNum-1) * pageSize+1; //시작
    	int endRow = pageNum * pageSize;         //마지막
    	
    	//Map
    	Map<String, Object> pagingMap = new HashMap<>();
    	pagingMap.put("section", section);
    	pagingMap.put("pageNum", pageNum);
    	pagingMap.put("memberId", memberId);
    	pagingMap.put("startRow", startRow); //시작행
    	pagingMap.put("endRow", endRow);     //끝행
    	
    	Map<String, Object> myhomeMap = likeService.selectLikeList(pagingMap); // 게시글 조회
        int likeCount = likeService.likeCount(memberId); // 좋아요 수 조회
        
        // 총 게시글 수 계산, 기본값 설정
    	int totalArticles = 0;
    	if (myhomeMap.get("totalArticles") != null) {
    	    totalArticles = (int) myhomeMap.get("totalArticles");
    	}
    	// 총 페이지 수 계산
    	int totalPages = (int) Math.ceil((double) totalArticles / pageSize); 
        
        ModelAndView mav = new ModelAndView("/mypage/like/likeList");
        mav.addObject("myhomeMap", myhomeMap); // "myhomeMap"라는 이름으로 데이터를 JSP로 전달
        mav.addObject("likeCount", likeCount);
        mav.addObject("section", section);
        mav.addObject("memberId", memberId);
        mav.addObject("totalPages", totalPages); // 총페이지수 값을 추가
        return mav;
	}
}
package com.spring.gami.mypage.like.service;

@Service("likeService")
public class LikeServiceImpl implements LikeService{
	
	@Autowired
	private LikeDAO likeDAO;
	@Autowired
	private MyhomeDomain myhomeDomain;

	@Override
	public Map<String, Object> selectLikeList(Map<String, Object> pagingMap) throws Exception {
		
		System.out.println("안녕 난 서비스 이제 페이징을 보내볼게?? 내가 답이 없으면 못 온거야");

		Map<String, Object> articlesMap = new HashMap();
		List<MyPageMyhomeDomain> articlesList = likeDAO.selectLikeList(pagingMap); //게시글목록
		
		String memberId = (String) pagingMap.get("memberId");
		int totalArticles = likeDAO.selectTotArticle(memberId); // 전체 게시글 수 count

		articlesMap.put("articlesList", articlesList);
		articlesMap.put("totalArticles", totalArticles);

		return articlesMap;
	}

	@Override
	public int likeCount(String memberId) throws Exception {
		return likeDAO.likeCount(memberId);
	}
}
package com.spring.gami.mypage.like.dao;

@Repository("likeDAO")
public class LikeDAOImpl implements LikeDAO{

	@Autowired
    private SqlSession sqlSession;
    @Autowired
    private MyhomeDomain myhomeDomain;
    private MyPageMyhomeDomain myPageMyhomeDomain;
	
	@Override
	public List<MyPageMyhomeDomain> selectLikeList(Map<String, Object> pagingMap) throws DataAccessException {
		List<MyPageMyhomeDomain> myhomeList = sqlSession.selectList("mapper.like.selectLikeList", pagingMap);
		return myhomeList;
	}
	@Override  //페이지 수 count
	public int selectTotArticle(String memberId)  throws DataAccessException {
	int totArticles = sqlSession.selectOne("mapper.like.selectTotArticle", memberId);
	return totArticles;
	}

	@Override
	public int likeCount(String memberId) throws DataAccessException {
		return sqlSession.selectOne("mapper.like.likeCount", memberId);
	}

}
<?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>">
<mapper namespace="mapper.like">
    
    <!-- Result Map 정의 -->
    <resultMap id="MyLikeResultMap" type="com.spring.gami.board.board_myhome.domain.MyhomeDomain">
        <id property="boardMyhomeArticleNo" column="boardMyhomeArticleNo"/>
        ...
        <result property="startRow" column="startRow"/> <!-- 페이징 추가 -->
        <result property="endRow" column="endRow"/> <!-- 페이징 -->
        <result property="imageFileName" column="imageFileName"/> 
    </resultMap>

  <!-- 좋아요 리스트 조회 -->
	<select id="selectLikeList" resultMap="MyLikeResultMap" parameterType="map">
    <![CDATA[
	SELECT * FROM (
        SELECT b.*, i.imageFilename, ROWNUM as rnum
        FROM (
            SELECT * 
            FROM boardMyhome 
            WHERE boardMyhomeArticleNo IN (
                SELECT boardMyhomeArticleNo 
                FROM boardMyHomeLikes 
                WHERE memberId = #{memberId}
            )
            ORDER BY boardMyhomeUpdated DESC
        ) b
        LEFT JOIN image i 
        ON b.boardMyhomeArticleNo = i.articleNo 
        AND i.imageType = '커버'
        WHERE ROWNUM <= #{endRow}  
    ) 
    WHERE rnum >= #{startRow}
    ]]>
	</select>
	
	<!-- 전체 페이지 수 -->
	<select id="selectTotArticle" resultType="int">
	<![CDATA[
	select count(*) from boardMyHomeLikes where memberId= #{memberId}
	]]>
	</select>
    
    <select id="likeCount" parameterType="String" resultType="int">
    <![CDATA[
	select count(boardMyhomeArticleNo)
    from boardMyHomeLikes
    where memberId = #{memberId}
    ]]>
    </select>
    
</mapper>