JDBC 结果集未迭代所有行

JDBC ResultSet not iterating all rows

我需要第二双眼睛看一些代码。我觉得我缺少一些简单的东西。我的 MariaDB 中有一个名为 jeff_tables 的 table,其中包含 4 个条目。我创建了一个实用程序线程,它 运行 在 运行 方法中包含以下代码:

try {
        getConnection();
        String query = "SELECT * FROM jeff_tables";
        Statement statement = connection.createStatement();
        ResultSet rs = statement.executeQuery(query);
        //rs.last(); //returns 4 rows
        //System.out.println("result set size: " + rs.getRow() );
        while(rs.next()) {
            Integer tenant = rs.getInt("TENANT_ID");
            String table = rs.getString("TABLE_NAME");
            System.out.println("Inserting k-v pair: " + tenant + " " + table);
            tableNames.put(tenant, table);
        }

    } catch (SQLException e) {
        e.printStackTrace();
    }

当我取消注释 rs.last() 和 rs.getRow() 行时,它 returns 4,这是它应该 return 的正确条目数。然而,实际发生的是它进入我的 while 循环,为第一行打印正确的值,然后在 put 语句上抛出一个空指针。我也试过 运行 在线程外使用这段代码,但它做的是同样的事情。任何建议将不胜感激。提前致谢。

我一发帖就看到问题了。这只是在尝试向其中插入值之前忘记实例化 HashMap 的一个简单实例。有趣的是,有时候发布一个问题才能让你睁开眼睛。