Ошибка синтаксиса >> проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с '?'в строке 1 - PullRequest
0 голосов
/ 22 мая 2019

Хочу после выбора идентификатора устройства из выпадающего списка, значения других полей автоматически извлекаются в текстовые поля. Но получаю следующую ошибку:

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; 
    check the manual that corresponds to your MariaDB server version 
    for the right syntax to use near '?' at line 1

введите описание изображения здесь

textField.addActionListener(new ActionListener() 
{
    public void actionPerformed(ActionEvent e) 
    {
        String DeviceID=textField.getSelectedItem().toString(); 
        String DeviceName=textField_1.getText();
        String SerialNumber=textField_2.getText();
        String ModelNumber=textField_3.getText();
        String Make=textField_4.getText();
        try 
        {
            Connection con=DB.getConnection();
            Statement ps=con.createStatement();

             ResultSet rs=ps.executeQuery("Select DeviceID,DeviceName,SerialNumber,ModelNumber,Make FROM deviceadd WHERE DeviceID =?");
             if(rs.next())
             {
            String ID = rs.getString("DeviceName");
            textField_1.setText(ID);
            String FN = rs.getString("SerialNumber");
            textField_2.setText(FN);
            String LN = rs.getString("ModelNumber");
            textField_3.setText(LN);
            String Des = rs.getString("Make");
            textField_4.setText(Des);
             }
        } 
        catch (SQLException e1)
        {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }
});

1 Ответ

0 голосов
/ 22 мая 2019

Используемый вами оператор SQL предназначен для подготовленного оператора, в который вы можете добавить параметры.

Вы используете обычное выполнение оператора, где?не заменяется аргументом, который приводит к запросу, который сервер sql не может понять.

Вы должны посмотреть PreparedStatement о том, как его использовать (например, https://www.javatpoint.com/PreparedStatement-interface)

...