게시판 페이징을 하려고합니다. 최범균책에 있는 소스를 가지고 응용을 했는데 안됩니다.ㅠㅠ
예를들어 한페이지에서 1~3번에 해당하는 글 3개만 갖고와야되서 아래 굵은글씨처럼 했더니
RNUM을 못갖고오네요..; 어떻게해야하죠? 원본 소스도 첨부하오니 참고해주세요~
오류는 다음과 같습니다.
"메시지목록구하기실패: ORA-00904: "RNUM" : invalid identifier"
public List<Member> selectListMember(Connection conn, int firstRow,int endRow) throws SQLException{
PreparedStatement pstmt=null;
ResultSet rs=null;
try{
pstmt = conn.prepareStatement("SELECT "
+ "ROWNUM RNUM,MEM_NO,MEM_NAM,MEM_LOC,PHONE,EMAIL,MEM_AGE,MEM_ID,MEM_MAJ "
+ "FROM("
+ "SELECT "
+ "A.MEM_NO,A.MEM_NAM,A.MEM_LOC,A.PHONE,A.EMAIL,A.MEM_AGE,B.MEM_ID,A.MEM_MAJ"
+ " FROM "
+ "STUDY_MEMBER A,STUDY_LOGIN B "
+ "WHERE "
+ "A.MEM_NO = B.MEM_NO(+) "
+ "ORDER BY A.MEM_NO DESC "
+ ") WHERE ROWNUM <=? and RNUM >=?");
pstmt.setInt(1, endRow);
pstmt.setInt(2, firstRow);
rs=pstmt.executeQuery();
if(rs.next()){
List<Member> memberList = new ArrayList<Member>();
do{
memberList.add(super.makeMemberFromResultSet(rs));
}while(rs.next());
return memberList;
}else{ return Collections.emptyList(); }
}finally{
JdbcUtil.close(rs);
JdbcUtil.close(pstmt);
}
}
최범균책 원본소스 쿼리--------------------------------------------------------
pstmt = conn.prepareStatement("SELECT MESSAGE_ID, GUEST_NAME,PASSWORD,MESSAGE FROM("
+"SELECT ROWNUM RNUM, MESSAGE_ID,GUEST_NAME,PASSWORD,MESSAGE FROM("
+"SELECT * FROM GUESTBOOK_MESSAGE M ORDER BY M.MESSAGE_ID DESC"
+")WHERE ROWNUM <=?"
+")WHERE RNUM >=?");
Comment 1
-
나는짱이야
2016.02.10 09:28
안녕하세요.제가 드리는 정보는 정답은 아니지만 저 같은 경우 먼저 쿼리 부분을 먼저 오라클의 경우 Toad 기타 등등을 통해서 쿼리 수행해본다음...소스코드를 수정합니다..이렇게 먼저 해보시는건 어떨까요?