JDBC结果得到不同的表列(JDBC ResultSet get column from diffe

2019-09-18 13:21发布

我婉检索查询涉及到许多表中的数据。 我有一个查询,如下所示

    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

任何人都知道为什么吗?

Answer 1:

你必须使用next()方法。

你应该知道ResultSet被隐式放置在位置第一行之前,所以你下一步需要调用来获取当前位置,如果有效,则返回true ,否则返回false (游标定位在最后一行之后)。

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


注意:您可以使用也rs.getString(<columnName>)但如果当你知道你的发言的样子,我建议你使用索引而不是列名。



Answer 2:

调用后resultSet.executeQuery()你需要调用next()从数据库拉动记录

之后,你可以调用setXxx()在Java API提供



文章来源: JDBC ResultSet get column from different tables
标签: jdbc