Java JDBC выдает ошибку для SQL-запроса, запрашивающего возвращение деталей только из определенных строк - PullRequest
0 голосов
/ 21 октября 2018

У меня есть база данных под названием «самолет», внутри которой есть таблица с названием бронирования.В таблице бронирования есть столбцы телефон (тип int), имя (тип текста), адрес (тип текста), город (тип текста), пункт назначения (тип текста), дата (тип текста).Я хочу получить только те строки, столбец телефона которых имеет значение или данные, равные номеру телефона, введенному пользователем.Я написал следующий код для него.Для контекста я использую Java, используя JDBC

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/airplane";
static final String USER = "root";
static final String PASS = "";

Connection conn = null;



try
  {
    System.out.println("enter cell no");
    int cell=sc.nextInt();
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    System.out.println("Connected database successfully...");

   // My SQL SELECT query.

    String query = "SELECT * FROM `booking` where phone=cell";

   // creating the java statement
   Statement st = conn.createStatement();

   /** executing the query, and getting a java resultset of all rows whose phone
    column has the value equal to one entered by user and stored by me in 
  int variable cell**/

   ResultSet rs = st.executeQuery(query);

         //iterate through the java resultset
         while (rs.next())
           {
            int Phone = rs.getInt("phone");
            String Name = rs.getString("name");
            String Address = rs.getString("address");
            String City = rs.getString("city");
            String Destination = rs.getString("destination");
            String Date = rs.getString("date");

// print the results
           System.out.format("%d, %s, %s, %s, %s, %s\n", Phone, Name, Address, City, Destination, Date);
                       }

                        st.close();
                    }
                    catch (Exception e)
                    {
                        System.err.println("Got an exception! ");
                        System.err.println(e.getMessage());
                    }

Я получаю сообщение об ошибке:

Got an exception! 
Unknown column 'cell' in 'where clause'

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

вы увидите, что он запустится

String query = "SELECT * FROM booking где phone =" + "\"% s \ "";

query = String.format(запрос, клетка);

0 голосов
/ 21 октября 2018

Попробуйте:

String query = "SELECT * FROM `booking` where phone=" + cell;

Лучший способ справиться с этим - использовать PreparedStatement

В этом случае запрос будет выглядеть следующим образом:

String query = "SELECT * FROM `booking` where phone=?"

и

statement.setInt(1, cell);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...