SQL语句为空错误

时间:2012-08-24 18:18:58

标签: mysql jsp

我在这里看到很多指南,说

if (!res.next())

应检查if语句是否为空,但是当我这样做时,我收到此错误

org.apache.jasper.JasperException: An exception occurred processing JSP page /irasyti.jsp at line 73

70:     String rezervbusena=""; // rezervo busenos info
71:     String uzsakymas="";    // uzsakymas info
72:     
73:     if( !res.next()){ //jei kambariai neuzimti
74:         try {

我不知道出了什么问题;也许我需要导入一些实用程序? :/我的代码:

    ResultSet res = null;
    Statement stmt = null;
        try {
            stmt = connection.createStatement();
            //res=stmt.executeQuery
            String tas=("SELECT * from table");  
            res=stmt.executeQuery(tas);
            out.println("<br>tas: "+tas + "<br>");
        }catch(Exception ex){
            out.println("Klaida skaityme: "+ex);    
        }

    if( !res.next()){ //jei kambariai neuzimti
            try {}
               catch(Exception ex){
            out.println("error: "+ex);
        }
}

错误是res结果集为null并且在mysql返回空状态后它保持为null所以我必须首先检查它是否为null if(res!= null)

谢谢所有人回答

2 个答案:

答案 0 :(得分:1)

您可以尝试使用以下代码,看看是否收到任何错误吗?

ResultSet res = null;
    Statement stmt = null;
        try {
            stmt = connection.createStatement();                        
            //res=stmt.executeQuery
            String tas=("SELECT * from table");  
            res=stmt.executeQuery(tas);
            out.println("<br>tas: "+tas + "<br>");       

    if(res.next()){ //jei kambariai neuzimti

            out.println("rs value "+rs.getString(1);
        }
}
catch(Exception e){
e.printStackTrace();
}

答案 1 :(得分:0)

请注意您已经获得了 Exception ,但这里有一些解释/提示。

首先,您在 JSP 中编写了 Java 代码,它是not consider as good practice

其次,如果获取的行具有数据,方法boolean ResultSet.next()将返回true;否则返回false

最后,JDBC API类位于java.sql包中,因此要么导入此包,要么只使用类/接口以及包名称 - java.sql.Connection等。