개발자 센터/iBatis
iBatis 에서 페이징하는 방법
피곤키오
2009. 12. 13. 20:24
한 페이지에 10개의 게시글을 불러오는 메서드 작성
sqlMap.queryForList(String args0, Object args1)public static List getBoardList(long rowsPerPage, long currentPage) { List result = new ArrayList(); SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance(); //페이지 정보를 저장한 객체생성 BoardPage bp = new BoardPage(); bp.setRowsPerPage(rowsPerPage); bp.setCurrentPage(currentPage); try { //페이지정보를 저장한 객체를 인자로 넘겨서 리스트를 구함 result = sqlMap.queryForList("getBoardList", bp); } catch(Exception e) { e.printStackTrace(); } return result; }
Board.xml에서 매핑되는 코드 작성
Board.xml<!-- select된 Board객체를 Mapping시킴 --> <resultMap id="boardResultMap" class="board.model.Board"> <result property="bno" column="bno" /> <result property="subject" column="subject" /> <result property="writer" column="writer" /> <result property="writedate" column="writedate" /> <result property="hitcount" column="hitcount" /> </resultMap> <!-- 페이지에 맞춰 게시글 검색 --> <select id="getBoardList" parameterClass="board.model.BoardPage" resultMap="boardResultMap" resultClass="board.model.Board"> <![CDATA[ select * from ( select rownum rnum, bno, subject, writer, writedate, hitcount from ( select bno, subject, writer, writedate, hitcount from board order by bno desc ) where rownum <= ( #rowsPerPage# * #currentPage# ) ) where rnum >= ( #rowsPerPage# * ( #currentPage# - 1 ) + 1 ) ]]>