2017-01-20 9 views
-1

複数の結果セット値を持つテーブルから複数の列を選択する必要があります。私はいくつかの質問が既に答えられているのを見つけましたが、私の状態で私を助ける特定のものを見つけることができませんでした。MySQLデータベースからすべての結果セット値を取得するには?

私はこれが、まだ運試した:私はこのjava.lang.NullPointerExceptionを言って、例外を取得し、第2の方法によmodel.addRow(row)行の最初の方法では

String dboutp = ""; 
try { 
    DBConnect Database = new DBConnect(); 
    Connection con = Database.getcon(); 
    String query="SELECT ITEM, PHP FROM table WHERE name=?"; 
    PreparedStatement ps = con.prepareStatement(query); 
    ps.setString(1, name); 
    ResultSet rs=ps.executeQuery(); 
    int i=1; 
    while(rs.next()){ 
     dboutp=dboutp+","+rs.getString(i); 
     i++; 
    } 
    con.close(); 
} catch (SQLException e) { 
    e.printStackTrace(); 
} 

String dboutp = ""; 
try { 
    DBConnect Database = new DBConnect(); 
    Connection con = Database.getcon(); 
    String query="SELECT ITEM, PHP FROM table WHERE name=?"; 
    PreparedStatement ps = con.prepareStatement(query); 
    ps.setString(1, name); 
    ResultSet rs=ps.executeQuery(); 
    int columnCount = 0; 
    Object[] row = new Object[columnCount]; 
    for (int i = 1; i <= columnCount; ++i) { 
     row[i - 1] = rs.getString(i); // Or even rs.getObject() 
     System.out.println(row[i-1]); 
    } 
    DefaultTableModel model = null; 
    model.addRow(row); 
    con.close(); 
} catch (SQLException e) { 
    e.printStackTrace(); 
} 

私も試してみましたが例外が発生します:java.sql.SQLException: Column Index out of range, 2 > 1

複数のカラム値を含む複数の結果セット値にアクセスする適切な方法は誰かが教えてくれて本当に感謝します。

+1

あなたは、例えば、基本的なJDBCのチュートリアル、http://docs.oracle.com/javase/tutorial/jdbc/basics/processingsqlstatements.html(およびそのJDBCのチュートリアルの残りの部分を)読みたいかもしれません。 –

答えて

1

結果セット内で「行」と行内に「列」が混在しているように見えます。

行をループします。各行について、列の値を取得します。

何か動作するには、何か簡単なものから始めます。変数を使用して、フェッチされた行の数をカウントできます。フェッチした行の数を行の列の数と混同しないでください。

ResultSet rs=ps.executeQuery(); 
    int rn = 0; 
    while(rs.next()) { 
     rn++; 
     String item = rs.getString(1); 
     String php = rs.getString(2); 

     System.out.println(" rn=" + rn + " item=" + item + " php=" + php); 

    } 
    System.out.println(" fetched total of " + rn + " rows"); 
関連する問題