2017-04-18 49 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