我想从下拉列表中选择设备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();
}
}
});
答案 0 :(得分:0)
您正在使用的SQL语句用于准备的语句,您可以在其中添加参数。
您使用的是普通语句执行,其中?不会用导致SQL服务器无法理解的查询的参数替换。
您应该查看PreparedStatement有关如何使用它的信息(例如https://www.javatpoint.com/PreparedStatement-interface)