0
我需要在某些代码上再加一对眼睛。我觉得有一些简单的我错过了。我在我的MariaDB中有一个名为jeff_tables的表,其中包含4个条目。我已经创建了运行run方法内的下面的代码的实用程序线程:JDBC ResultSet不会迭代所有行
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()线,它返回图4,这是正确的数它应该返回的条目。但是,实际发生的是它进入我的while循环,为第一行输出正确的值,然后在put语句中抛出一个空指针。我也尝试在线程之外运行此代码,但它也在做同样的事情。任何建议将不胜感激。提前致谢。
显然'tableNames'变量没有被初始化,并且是'null' – hoaz
是的,我意识到,在我发布这个问题之后。我知道这是简单的,我一直俯视。谢谢。 – jeffkempf