我需要第二双眼睛看一些代码。我觉得有一些简单的东西我不见了。我的MariaDB中有一个名为jeff_tables的表,其中包含4个条目。我创建了一个实用程序线程,它在run方法中运行以下代码:
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语句上抛出一个空指针。我也试过在一个线程之外运行这个代码,但它做的是同样的事情。任何建议将不胜感激。提前谢谢。
答案 0 :(得分:0)
我一发布这个,就看到了问题。这只是在尝试向其中插入值之前忘记实例化HashMap的简单实例。有趣的是,有时需要发布一个问题来睁开你的眼睛。