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你所说的事情是相互排斥的。如果数据是打印出来的,那么“未发现”错误就无法打印出来。仔细想想。