我正在執行一段代碼,我需要從數據庫中檢索一組用戶,並與他們做一些事情。非常簡單的情況。 問題是,雖然我使用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(...)'。 –