java - Mysql结果集错误

标签 java mysql resultset

我正在执行一段代码,我需要从数据库中检索一组用户并用他们做一些事情。非常简单的场景。 问题是,虽然我使用 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/

相关文章:

php - Laravel 4 database.php 无法访问数据库

mysql - MYSQL 错误 1193--在同一个表上更新

sql - 如何选择一个空的结果集?

java - 如何将我在结果集中所做的更改转换为 java 中的 sql 查询?

java - 在 android studio 中存储位图与使用 url 获取位图

java - 如何在android中的onResponse方法之外访问响应值

java - 如何在不使用系统时间的情况下从服务器获取时间

java - 不使用replace或replaceAll替换字符串内容

java - 结果集 rs.next() 的 rs 变量如何为 true,即使它们在第二个表 b 中没有记录

php - 三个小时过去了吗?