我想从涉及许多表的查询中检索数据。 我有一个查询如下
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
谁知道为什么?
答案 0 :(得分:4)
您必须使用next()
方法。
你应该知道ResultSet
隐含地位于第一行之前的位置,所以你需要调用next来获取当前位置,如果有效,它返回true
,否则返回false
(光标位于最后一行之后)。
rs = statement.executeQuery(sql);
while (rs.next()) {
String orderID = rs.getString(2);
}
注意:您也可以使用rs.getString(<columnName>)
但是如果您知道语句的外观,我建议您使用index而不是columnName。
答案 1 :(得分:0)
调用resultSet.executeQuery()
后,您需要调用next()
从db中提取记录
之后,您可以调用Java API提供的setXxx()