2017-02-28 4 views
0

私はいくつかのコードで目の第2のペアが必要です。シンプルなものがあるような気がする。 MariaDBにjeff_tablesというテーブルがあり、そこには4つのエントリが含まれています。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(); 
    } 

Iはrs.last()とrs.getRow()ライン、それは4を返し、正しい番号がアンコメント:私は、実行メソッド内、次のコードを実行するユーティリティ・スレッドを作成しました返されるエントリの数。しかし、実際に何が起こっているのは、whileループに入り、最初の行の正しい値を出力してから、put文にヌル・ポインタをスローします。私はスレッド外でこのコードを実行しようとしましたが、同じことをやっています。アドバイスをいただければ幸いです。前もって感謝します。

+2

明らかに 'tableNames'変数は初期化されておらず、' null'です – hoaz

+0

そうです、私はこの質問を投稿した直後にそれを認識しました。私はそれが私が見落としていた単純なものであることを知っていた。ありがとう。 – jeffkempf

答えて

0

これを投稿するとすぐに、問題がわかりました。これは、値を挿入する前にHashMapをインスタンス化することを忘れた単純な例でした。あなたの目を開くために質問を投稿するのが時々面白いです。

関連する問題