我想连接到oracle并获取一些记录。
java.sql.ResultSet r = s.executeQuery("Select * from table1");
while (r.next()==true) {
System.out.println(r.getString("column1").toString());
}
table1包含那些行
当我执行上面的代码时,我得到“线程中的异常”主“java.lang.NullPointerException”错误。我该如何解决?
答案 0 :(得分:3)
看起来好像column1
没有一行的值...所以getString()
返回一个空引用,然后你调用toString()
- 引导到例外。当您拨打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);
}
}
答案 1 :(得分:2)
r.getString("column1")
的返回值可能为null,因此您将在后续NullPointerException
方法调用中获得toString()
。在使用返回值之前,您必须检查空值。
您无需在此处拨打toString()
。 getString
方法已经返回一个字符串。
答案 2 :(得分:2)
您没有说明代码中的确切位置发生了异常。最可能的原因是s
为null
或r.getString("column1")
返回null
。
答案 3 :(得分:1)
也许你得到nullpointer因为row3有空值而你正试图“toString”-it
答案 4 :(得分:1)
如果它发布的第一行抛出了错误,我的猜测就是变量s为null(未初始化),但是因为你没有告诉我们你的代码究竟是什么行引发了错误很难告诉。