2017-04-18 5 views
0

私はコーディングの世界で新しいです。私は、プロジェクトを実行すると "Exhausted ResultSet"というエラーが出ます。私はエラーがresultSetのコードのどこかにあると思います。この種の問題を解決するために何をすべきか誰にでも私に提案できますか?ここでエラー - >使い果たされた結果セット

は私のサーブレットのコード名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