gpt4 book ai didi

java - MySQL 给出正确的输出,但 Java 引发异常

转载 作者:行者123 更新时间:2023-11-30 01:34:18 26 4
gpt4 key购买 nike

我想显示以下信息 -

日期航类 |名称 出发时间 |商务舱可用性 |行政舱可用性 |经济舱可用性

现在所有信息都在不同的表中

Table sector - sectorID | description | weekday1 | weekday2 | bfare | xfare | efare
Table flights - flightno | deptime | arrtime | aircrafttypeID | sectorID
Table aircraft - aircraftTypeID | description | bseats | xseats | eseats
scheduleID - flightno | flightdate | bcsavailable | xcsavailable | ecsavailable

查询:显示 2013 年 6 月 17 日从加尔各答飞往艾哈迈达巴德的航类,舱位为商务舱。

第 1 部分 - 我正在尝试获取座位数大于 0 且来源和目的地匹配的航类号,第 2 部分 - 然后我将从 Scheduledflights 表中获取日期和航类号匹配的记录。当我在 MySQL 查询窗口中运行此查询时,我得到了正确的输出,但是当我在 Java 中执行相同的查询时,它给了我一个错误 -

Column Index out of range, 2 > 1.

SQL 版本

SELECT flightno
FROM flights
WHERE aircrafttypeID
IN (
SELECT aircraftTypeID
FROM aircraft
WHERE aircrafttypeID
IN (
SELECT aircrafttypeID
FROM sector, flights
WHERE source LIKE 'Kolkata'
AND destination LIKE 'Ahmedabad'
AND sector.sectorID = flights.sectorID
)
AND bseats >0)

以上查询的输出是FJA23和FJA24 2条记录,这是正确的。

Java版本

String origin=jComboBox3.getSelectedItem().toString();
String target=jComboBox4.getSelectedItem().toString();
String fclass=jComboBox1.getSelectedItem().toString();
String search = "";
if(fclass.equals("Business"))
{
search="AND bseats>0";
}
if(fclass.equals("Executive"))
{
search="AND xseats>0";
}
if(fclass.equals("Economy"))
{
search="AND eseats>0";
}
String sql="SELECT flightno FROM flights WHERE aircrafttypeID IN "
+ "(SELECT aircraft.aircrafttypeID FROM aircraft WHERE aircrafttypeID IN "
+ "(SELECT aircrafttypeID FROM sector,flights WHERE source LIKE '"+ origin
+ "' AND destination LIKE '" + target + "' AND sector.sectorID=flights.sectorID) " + search+")";

System.out.println(sql);

最佳答案

我从@Home 得到了答案,一个小小的提示,让我看到闪闪发光的光芒。当我看到 printstack 时,它显示了我的这部分代码

while(rs.next())
{
String var1=rs.getString(1);
//String var2=rs.getString(2);
//String var3=Integer.toString(rs.getInt(3));
//String var4=Integer.toString(rs.getInt(4));
//String var5=Integer.toString(rs.getInt(5));
//System.out.println(var1+" " + var2+" "+var3+" "+var4+" "+var5);
System.out.println(var1);
}

抛出异常,因为我试图从结果集中不可用的多个数据中获取数据

感谢大家关注我的问题。但我仍然很困惑如何从不同的表中获取数据。我是否需要对每列数据进行多次查询?

关于java - MySQL 给出正确的输出,但 Java 引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17113146/

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