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