我正在执行一段代码,我需要从数据库中检索一组用户并用他们做一些事情。非常简单的场景。
问题是,虽然我使用 while(rs.next())
,但当 rs.next()
达到 null 时,我的程序尝试继续 while 子句中的代码,并且退出并出现 Null 异常。
为什么会发生这种情况?我的代码中是否存在我无法弄清楚的问题?
请注意,rs
永远不会null
。一开始在控制台打印 rs
的所有内容,但是当它到达末尾时,它返回 null 异常。
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();
}
感谢任何帮助。
最佳答案
将 StringmentionsIDs = (rs.getString("mentions")).trim();
移至 try block 内,然后捕获 NullPointerException
。
关于java - Mysql结果集错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21828734/