我正在找到检查空结果集的解决方案...这是代码

     temp = rs1;
     boolean hasRows = temp.next();


     if (hasRows) {
        while (rs1.next()) {
            String pid = rs1.getString("pid");
            System.out.println(pid);
            String pd = rs1.getString("description");
            double price = rs1.getDouble("price");%>
                    <br>
                    Product id : <%=pid %><br>
                    Description : <%=pd %><br>
                    Price : <%=price %>
      <%
                }
          }


看来temp.next()将影响rs.next(),结果最终无法打印出来。为什么?

最佳答案

next()方法已经检查您尝试的控件。如果结果集rs1具有元素,则将进入循环。
您似乎在任何地方都没有使用temp。为什么?放弃并完成工作,请尝试以下操作:

      boolean loopEntered = false;
      while (rs1.next())
      {
                loopEntered = true;
                String pid = rs1.getString("pid");
                System.out.println(pid);
                String pd = rs1.getString("description");
                double price = rs1.getDouble("price");

              %>
                 <br>
                 Product id : <%=pid %><br>
                 Description : <%=pd %><br>
                 Price : <%=price %>
              <%
      }

      if(!loopEntered)
      // print your error messages.

09-09 21:18