尝试执行SELECT操作时,使用JDBC的JAVA程序中的SQL查询引发错误

时间:2018-10-21 15:45:15

标签: java mysql jdbc

我有一个名称为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。因此,测试值将不会增加。但是由于某种原因我在这里出现错误

1 个答案:

答案 0 :(得分:0)

您要查询的表不是“时间表”而不是“预订”吗?

此外,您应该使用参数化查询为SQL查询添加一些安全性。仅仅将变量连接到查询字符串是不好的做法。