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 的一个简单实例。有趣的是,有时候发布一个问题才能让你睁开眼睛。
我需要第二双眼睛看一些代码。我觉得我缺少一些简单的东西。我的 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 的一个简单实例。有趣的是,有时候发布一个问题才能让你睁开眼睛。