我有一个名称为planet的MySQL数据库。 里面有一个名为“时间表”的表。该表用于存储飞机公司的航班时间表
它有五列,分别名为id(int),fromcity(text),tocity(text),seatsleft(text)(int)和date。
此表已经填充了各种飞行计划详细信息。
我想检查预订机票时用户输入的起始城市和目的地城市。
int test=0;
System.out.println("Enter your Phone number:");
phone[i] = sc.nextInt();
sc.nextLine();
System.out.println("Enter your name:");
name[i] = sc.nextLine();
System.out.println("Enter your address:");
address[i] = sc.nextLine();
System.out.println("Enter your Pick up city:");
city[i] = sc.nextLine();
System.out.println("Enter your Destination:");
destination[i] = sc.nextLine();
System.out.println("Enter your date of travel:");
date[i] = sc.nextLine();
Connection conn = null;
PreparedStatement stmt = null;
Connection conx=null;
try {
String query1 = "SELECT * FROM `booking` WHERE fromcity="+city[i]+"AND tocity="+destination[i];
conx = DriverManager.getConnection(DB_URL, USER, PASS);
Statement st4 = conn.createStatement();
ResultSet rst = st4.executeQuery(query1);
//iterate through the java resultset
while (rst.next())
{
test=test+1;
}
if(test==0)
{
System.out.println("no such flight route exists");
}
st4.close();
}//try closed here
catch(Exception e)
{
System.out.println("got an error");
}
现在,如果数据库中不存在用户输入的城市和城市,则结果集将为0。因此,测试值将不会增加。但是由于某种原因我在这里出现错误
答案 0 :(得分:0)
您要查询的表不是“时间表”而不是“预订”吗?
此外,您应该使用参数化查询为SQL查询添加一些安全性。仅仅将变量连接到查询字符串是不好的做法。