gpt4 book ai didi

JDBC ResultSet 从不同的表中获取列

转载 作者:行者123 更新时间:2023-12-04 18:18:31 25 4
gpt4 key购买 nike

我想从涉及许多表的查询中检索数据。
我有一个查询如下

    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

有谁知道为什么?

最佳答案

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

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

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

关于JDBC ResultSet 从不同的表中获取列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11211514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com