2011-12-12 2 views
1

나는 벽을 코딩하고있어, 그리고 난 그 벽에 대한 모든 내용을 보여 드리고자합니다 (댓글과 페이스 북의 벽처럼 게시물 등) 나는 의견과 게시물을 포함하는 HTML 콘텐츠를 인쇄 할 JSP를 사용하고java/jsp 결과 세트를 역전시키는 방법은 무엇입니까?

.

ResultSet wallrs = dbconnect.getWallResultset(); 
    if(wallrs!=null){ 
     while(wallrs.next()){ 
      %> 
      <br><b><%=wallrs.getString("navn")%></b> 
      <div style="max-width: 500px;"><br><%=wallrs.getString("besked") %></div> 
      <% 

      wallrsid = wallrs.getInt("id"); 
      ResultSet kommentarrs = dbconnect.getKommentarResultset(wallrsid); 

      if(kommentarrs!=null){ 
       while(kommentarrs.next()){ 
        %> 
        <Blockquote><b><%=kommentarrs.getString("navn") %>:</b> <%=kommentarrs.getString("kommentar") %></Blockquote> 
        <% 
       } 
      } 
      if(dbconnect.loggedIn){ 
      %> 
      <form id="<%= wallrsid%>"></form> 
      <button onclick="show_form('<%= wallrsid%>')">Kommenter</button> 
      <% 
      } 
     } 
     String message = request.getParameter("kommentar"); 
     if(message!=null){ 
      dbconnect.createComment(message, request.getRemoteAddr(), wallrsid); 
      System.out.println("Message: " + message + " Ip adresse: " + request.getRemoteAddr() + " Besked id: " + wallrsid); 
      message = null; 
     } 
    } 
    dbconnect.cleanUp(); 

이것은 내가 처리하는 것입니다. 그것은 그것을 출력하기 때문에 새로운 주석이 맨 위에있는 것이 아니라 맨 아래에있게됩니다.

어떻게 거꾸로 만들 수 있습니까? 그냥 확인하는 더 좋은 방법 :

답변

9

가있을 수 있습니다

나는 내가 루프 ArrayList에에를 통해 결과 집합 및 루프 "뒤로"ArrayList를하지만 그 방법을 소모적 자원처럼 보인다 수 알고, 내가 생각 주석을 가져 오는 쿼리의 끝에는 ORDER BY POSTDATE DESC이 있고 결과 세트에는 맨 위에 최근 주석이 반환됩니다. 게다가 실제 데이터베이스가 이런 종류의 물건에 정말 좋음을 감안할 때 매우 큰 결과 세트에 대해서는 효율적일 것입니다.

+0

Sanjay가 맞습니다. SQL 서버가 주문을 신경 쓰는 거의 모든 경우에 주문을 처리하기를 원합니다. –

0

ResultSets을 거꾸로 직접 뒤로 지나갈 수 없습니다. 데이터베이스 쿼리는 ORDER BY으로 조정해야합니다.

일반적으로 next()으로 다음 행으로 만 이동할 수 있습니다. 연결 구성에 따라 last()을 사용하여 마지막 항목을 가져온 후 previous()으로 이전 결과를 검색 할 수 있습니다. 그러나 일반적으로이 작업에는 특별한 구성이 필요하다는 것을 알고 있어야합니다.

ResultSet documentation을 확인하십시오. 커서 유형 정의는 일반적으로 공급 업체에 따라 다릅니다.

성명서에 ORDER BY 조항을 사용해 보시기 바랍니다.

관련 문제