Java ResultSet不是null,但给出了null指针异常

Java ResultSet不是null,但给出了null指针异常,java,jdbc,Java,Jdbc,我有16到17个数据库记录 但当我想检索数据时。。。。在运行时,我收到空指针异常 (抱歉英语不好) 你不能得到你所指的NPEwhile(rs.next())当且仅当变量rs为空时,此行将抛出NPE。报告说: executeQuery()返回包含数据的ResultSet对象 由给定查询生成;永不失效` 因此,在rs=stmt.executeQuery()之后变量rs不能为空。NPE的来源可能在代码中的其他地方,但不是while循环中的条件 如果这是真正的代码,您必须稍后在“while”循环内将“r

我有16到17个数据库记录 但当我想检索数据时。。。。在运行时,我收到空指针异常 (抱歉英语不好)


你不能得到你所指的NPE
while(rs.next())
当且仅当变量
rs
为空时,此行将抛出NPE。报告说:

executeQuery()返回包含数据的ResultSet对象 由给定查询生成;永不失效`


因此,在
rs=stmt.executeQuery()之后变量
rs
不能为空。NPE的来源可能在代码中的其他地方,但不是
while
循环中的条件

如果这是真正的代码,您必须稍后在“while”循环内将“rs”设置为null。

在while之前放置此snipet:
如果(rs==null){System.out.println(“它是null!”);}
只有在访问定义了rs的null对象时才会发生NullPointerException?这可能是空的。rs.hasNext()返回什么?执行查询时可能有错误?我认为应该有一种rs方法来检查最后一次执行是否有错误。@即使在这种情况下,MightyPort resultset也不会为null。@MightyPort
executeQuery()
从不返回
null
。我没有在循环中设置rs=null,但如果我至少将其设置为null,则必须从db返回1条记录。。。。while(rs.next()){String id=rs.getString(“id”);String date=rs.getString(“日期”);System.out.println(id+“”+date);}
 sql="SELECT * FROM CUSTOMER ORDER BY date DESC"; //my query
stmt=con.prepareStatement(sql);   //preparedStatement
System.out.println("2");    //checking output (where is exception)
rs=stmt.executeQuery();    //resultsetGlobal declare
System.out.println("3");    //checking outpur
i=0;    //for show record number
System.out.println(i);     //checking output
while(rs.next()){     //here i get the exception any one tell me why exception??
}