当前位置: 首页 > 知识库问答 >
问题:

语法错误>>查看与您的MariaDB服务器版本相对应的手册,以获得在“?”附近使用的正确语法。在第1行

山高峰
2023-03-14

我想从下拉选择设备id后,其他字段值自动取入文本字段。但得到以下错误:

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个答案

蒲坚
2023-03-14

您使用的SQL语句是一个准备好的语句,您可以在其中添加参数。

您正在使用一个正常的语句执行,其中?不会用导致sql server无法理解的查询的参数替换。

您应该查阅PreparedStatement以了解如何使用它(例如https://www.javatpoint.com/PreparedStatement-interface)

 类似资料: