2

多くのテーブルを含むクエリからデータを取得したい。私は次のようなクエリを持っています

    String sql = "SELECT "
            + "s.Food_ID AS 'Sales_FoodID', "
            + "f.Food_Name AS 'foodName' "
            + "FROM Ordering o, Sales s, Food f"
            + " WHERE o.Table_No = " + tableNo + ""
            + " AND o.Paid = '" + NOT_PAID + "'"
            + " AND s.Order_ID = o.Order_ID"
            + " AND f.Food_ID = s.Food_ID;";
    resultSet = statement.executeQuery(sql);

プログラムを実行してもエラーは見つかりませんでしたが、次の行を追加してテーブルの列データを取得した後:

    String orderID = resultSet.getString("foodName");

私はこのエラーを与えられています:

    java.sql.SQLException: Column not found

誰かが理由を知っていますか?

4

2 に答える 2

4

メソッドを使用する必要がありますnext()。 は最初の行の前の位置に暗黙的に配置され

ていることを知っておく必要があるため、 next を呼び出して現在の位置を取得する必要があり、有効な場合は戻り、そうでない場合は戻ります(カーソルは最後の行の後に配置されます)。ResultSettruefalse

rs = statement.executeQuery(sql);
while (rs.next()) {
   String orderID = rs.getString(2);
}


注:も使用できますrs.getString(<columnName>)が、ステートメントがどのように見えるかを知っている場合は、columnName の代わりに index を使用することをお勧めします。

于 2012-06-26T16:13:16.557 に答える