我正在执行一段代码,我需要从数据库中检索一组用户,并与他们做一些事情。非常简单的情况。 问题是,虽然我使用while(rs.next())
,但当rs.next()
达到空值时,我的程序尝试继续使用while子句中的代码并使用Null异常退出。Mysql结果集错误
这是为什么发生?我的代码中有些东西被破坏了,我无法弄清楚? 请注意,rs
永远不会是null
。在开始时在控制台打印rs
的所有内容,但是当它到达结尾时,它返回空例外。
try {
String sql = "select distinct userid from userinfo";
stmt1 = conn.createStatement();
try (ResultSet rs = stmt1.executeQuery(sql)) {
while (rs.next()) {
String mentionsIDs = (rs.getString("mentions")).trim();
try{
if (!mentionsIDs.isEmpty()){
System.out.println(mentionsIDs);
String[] arr = mentionsIDs.split("\\s+");
if(isNumeric(arr[0])){
System.out.println(arr[0]);
sources.add(Long.parseLong(arr[0]));
}
}
}
catch(Exception ex){
Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
}
}
rs.close();
}
任何帮助表示赞赏。
你只返回不同的userids和阅读'mentions'列? '(rs.getString(“mentions”))。trim()'可以抛出'NullPointerException'是'rs.getString(“mentions”)'为null –
你完全正确!万分感谢!! – user2008973
'rs.close()'不再需要,因为'try(...)'。 –