Java 空结果集异常
我想连接到oracle并获取一些记录Java 空结果集异常,java,oracle,nullpointerexception,resultset,Java,Oracle,Nullpointerexception,Resultset,我想连接到oracle并获取一些记录 java.sql.ResultSet r = s.executeQuery("Select * from table1"); while (r.next()==true) { System.out.println(r.getString("column1").toString()); } 表1包括类似的行 第1行movieName1 第2排电影短片2 第3行 第4行movieName2 当我执行上述代码时,我得到了“线程中的异常
java.sql.ResultSet r = s.executeQuery("Select * from table1");
while (r.next()==true) {
System.out.println(r.getString("column1").toString());
}
表1包括类似的行
- 第1行movieName1
- 第2排电影短片2
- 第3行
- 第4行movieName2
当我执行上述代码时,我得到了“线程中的异常”main“java.lang.NullPointerException”错误。我怎样才能修好它 可能是因为第3行的值为null,而您正试图“toString”所以您得到了null指针,它看起来像是
column1
没有一行的值。。。因此,getString()
返回一个空引用,然后调用toString()
on-导致异常。当您调用getString()
时,toString()
调用毫无意义,因此您可以将其重写为:
while (r.next()) {
System.out.println(r.getString("column1"));
}
然后将改为打印null
。如果要避免这种情况,请使用:
while (r.next()) {
String name = r.getString("column1");
if (name != null) {
System.out.println(name);
}
}
如果是您发布的第一行抛出错误,我的猜测是变量s为null(未初始化),但是由于您没有确切地告诉我们代码的哪行抛出错误,因此很难判断
r.getString(“column1”)
的返回值可能为null,因此在随后的toString()
方法调用中,您将得到一个NullPointerException
。在使用返回值之前,必须检查空值toString()
。getString
方法已返回字符串您没有说异常发生在代码中的确切位置。最可能的原因是
s
为null
或r.getString(“column1”)
返回null
表中的列是什么?描述您的表。哪个引用为空?实际上,您不需要对字符串引用调用.toString()
。