2017-04-18 80 views
0

我是編程界的新手。當我運行該項目時,出現了「Exhausted ResultSet」錯誤。我認爲這個錯誤在resultSet編碼的某個地方。任何人都可以向我建議我該怎麼做才能解決這類問題?錯誤 - >用盡結果集

這裏是我的servlet代碼名稱DisplayItemServlet:

PreparedStatement ps = con.prepareStatement("select images from item where itemId = ?"); 
     String itemId = request.getParameter("itemId"); 
     ps.setString(1,itemId); 
     ResultSet rs = ps.executeQuery(); 
     if (rs!= null) { 
     while(rs.next()){ 

      Blob b = rs.getBlob("images"); 
      response.setContentType("image/jpeg"); 
      response.setContentLength((int) b.length()); 

     InputStream is = b.getBinaryStream(); 
     OutputStream os = response.getOutputStream(); 
     byte buf[] = new byte[(int) b.length()]; 
     is.read(buf); 
     os.write(buf); 
     os.close(); 
     }} 

這裏是我的ListItemServlet:

PreparedStatement ps = con.prepareStatement("select * from item"); 
     ResultSet rs = ps.executeQuery(); 
     while (rs.next()) { 

       response.sendRedirect("catalog.jsp"); 

     } 

     con.close(); 

在此先感謝!

回答

0

您不檢查在DisplayItemServlet中rs.next()是否爲null。 此外,請檢查此java.sql.SQLException: Exhausted Resultset瞭解更多/更深入的瞭解。

+0

還是得到了同樣的錯誤...... – anan

+0

請檢查連接,基本上如果你嘗試後置處理結果或其他字來訪問欄沒有什麼rs.next()。所以試着在代碼中找到潛在的錯誤。 – user2044822

+0

我已檢查鏈接,但仍不確定我的編碼是否正確。我已經在問題中編輯了我的編碼。你能通過檢查代碼來幫助我嗎? – anan