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()方法。

您应该知道它ResultSet隐式定位在第一行之前的位置,因此您需要调用 next 以获取当前位置,如果有效,则返回true,否则返回false(光标位于最后一行之后)。

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


注意:您也可以使用rs.getString(<columnName>),但如果您知道语句的外观,我建议您使用索引而不是 columnName。

于 2012-06-26T16:13:16.557 回答
0

调用后,resultSet.executeQuery()您需要调用next()从数据库中提取记录

之后,您可以调用 setXxx()Java API 提供的

于 2014-09-02T14:01:43.740 回答