java - 如何判断结果集是否为空?

标签 java jsp jdbc

美好的一天!

我想知道如果我想确定我的搜索是否存在,我如何才能在我的 if-else 语句 中获得所需的结果。我按照前面与此相关的问题中的建议进行了各种组合,但仍然无法得到我想要的。

代码 1:如果我的搜索为空,我将无法到达 else 语句...

        if (resultSet!= null) {
            while (resultSet.next()) {   //MULTIPLE VALUE SEARCH
                Product product = new Product();
                product.setProductId(resultSet.getInt("productId"));
                product.setProductName(resultSet.getString("productName"));
                productList.add(product);
            }
            request.setAttribute("productList", productList);
            RequestDispatcher rd = request.getRequestDispatcher("adminViewSearch.jsp");
            rd.forward(request, response);
        } else {
            request.setAttribute("message", "Search Failed"):
            RequestDispatcher rd = request.getRequestDispatcher("adminViewSearch.jsp");
            rd.forward(request, response);
        }

代码 2:我也无法到达应显示搜索值的 else 语句...

        if (!resultSet.next()) {
             .... Search Failed Message    
        } else { 
             while(result.next()){.....
        }

代码 3:与案例 1 相同的结果:

        if (resultSet.wasNull()) {
             .... Search Failed Message    
        } else { 
             while(result.next()){.....
        }

我尝试了其他组合,但仍然无法达到我想要的结果,如下所示: 当用户搜索一个值时,如果结果集为空,将出现错误消息,否则如果搜索不为空,将显示 1 个或多个搜索。

请给我一个更简单的方法的替代方法,因为看起来我做错了。

提前谢谢你..

最佳答案

在代码 1 中:

    if(productList.size() == 0 ){
         request.setAttribute("message", "Search Failed"):        
    }else{
          request.setAttribute("productList", productList);             
    }

    RequestDispatcher rd = request.getRequestDispatcher("adminViewSearch.jsp");
    rd.forward(request, response);  

或者只是设置更合适的方式

    if (resultSet!= null) {
        while (resultSet.next()) { 
            Product product = new Product();
            product.setProductId(resultSet.getInt("productId"));
            product.setProductName(resultSet.getString("productName"));
            productList.add(product);
        }
        request.setAttribute("productList", productList);
        RequestDispatcher rd = request.getRequestDispatcher("adminViewSearch.jsp");
        rd.forward(request, response);
    }

jsp

<c:if test="${fn:length(companies) gt 0}">
   <!--display collection using c:foreach -->
</c:if>

<c:if test="${fn:length(companies) eq 0}">
   Search failed
</c:if>

关于java - 如何判断结果集是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258366/

相关文章:

javascript - AJAX隐藏调用jsp页面

java - 将数据从数据库写入文件时保留换行符

java - 将 HashMap 添加到 HashMap 数组中

Java DB 客户端-服务器技术 - 集中式 DB - 如何?

java - 在文件中保存数据的文件格式以及如何读取此数据 - Spring MVC

java - 安装正确的 Java 后,MacOS 上的 Oracle SQLDeveloper 无法打开

java - 如何直接从数据库填充数据到Jtable

java - 旋转图像滋扰

java - 如何将数据库中的问题存储在 servlet 上并显示在 html 页面上?测验申请

java - 找不到 JDBC 驱动程序