在一张表中查询名字为李煊变量的id,出现ResultSet类结果集rs为空的错误,但是在数据库中执行这个歌语句是没有问题的,求大神指教String Sql="select intExpertId from tbexpert where varName='李煊'";
           try {
            //执行Sql语句,结果集赋给ResultSet类型的rs变量
rs=stmt.executeQuery(Sql);
System.out.println("rs是否为空:"+rs.wasNull());
//前面定义了一个List集合存放所有查询到的专家id
while(!rs.isAfterLast()){
int l=rs.getInt(1);
System.out.println(l); }

解决方案 »

  1.   

    在mysql客户端运行过了 sql语句没问题  
      

  2.   

    这个干嘛用   while(!rs.isAfterLast()){用 
      while(rs.next()){
      

  3.   

    用while(rs.nest()){};大括号的内容就不执行了,可能因为只有一行记录.
    用if(rs.next)都试过都不执行
      

  4.   

    谁说的。rs.next()执行时会先把光标放到第一行记录之前,所以就算只有一行记录,rs.next()也是能正确获取到数据的。只要是JDBC操作数据库,就一定得用while(rs.next())。
    这个异常就是没有JDBC没有查询到数据,检查一下是否不同的库有同名的表,最好把完整的操作数据库的代码贴出来。