Java 检查空结果集

Java 检查空结果集,java,jsp,Java,Jsp,我正在创建一个检查空结果集的解决方案。。。这是密码 temp = rs1; boolean hasRows = temp.next(); if (hasRows) { while (rs1.next()) { String pid = rs1.getString("pid"); System.out.println(pid); String pd = rs1.getStr

我正在创建一个检查空结果集的解决方案。。。这是密码

     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=rs1;
布尔hasRows=temp.next();
如果(hasRows){
while(rs1.next()){
字符串pid=rs1.getString(“pid”);
系统输出打印项次(pid);
字符串pd=rs1.getString(“说明”);
双倍价格=rs1.getDouble(“价格”);%>

产品标识:
说明:
价格:
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.
boolean loopEntered=false;
while(rs1.next())
{
loopEntered=true;
字符串pid=rs1.getString(“pid”);
系统输出打印项次(pid);
字符串pd=rs1.getString(“说明”);
双倍价格=rs1.getDouble(“价格”);
%>

产品标识:
说明:
价格: 我通常喜欢这个

if(rs.next()){
    do {                
        //print product details
    } while (rs.next());
}else{
    //print product not found
}

这是面向对象的。
temp
引用了与
rs
相同的
ResultSet
实例。@home这与面向对象无关,只是
temp
rs1
引用了相同的对象。若要操作,请使用
while(rs1.hasNext()){…}
@Kristian Antonsen:它不一定与OO相关,但正如您所提到的,它也指对象,我会调用指针或引用一个常见的OO原则。但是如果结果集为空,如何打印“未找到产品”?没有
hasNext()
ResultSets的方法。相反,您可以在while循环中设置一个标志。或者如果(rs1.next())保持
并将
while
循环更改为
do…while
@TPete,因此只需在循环运行后检查其空性即可。我更改了代码。@递解程序rs==rs1?使用上述代码,如果找到数据,将打印数据,最后打印错误。@tanyehzheng抱歉输入错误,rs=rs1.t你所说的事情是相互排斥的。如果数据是打印出来的,那么“未发现”错误就无法打印出来。仔细想想。