Java 为什么要删除我的sql表中的所有记录?

Java 为什么要删除我的sql表中的所有记录?,java,sql,database,jframe,Java,Sql,Database,Jframe,我要为学校做一个Java项目。我使用sql和JFrame,当我尝试从订单中删除(或编辑)一条记录时,我有3个表(客户、订单、汽车),订单中的所有记录都将被删除,而不是一条。我猜我的sql查询有问题。 因此,如果有人能告诉我我的错误,那就太好了。:) 这是我的密码: class DeleteOrder implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) {

我要为学校做一个Java项目。我使用sql和JFrame,当我尝试从订单中删除(或编辑)一条记录时,我有3个表(客户、订单、汽车),订单中的所有记录都将被删除,而不是一条。我猜我的sql查询有问题。 因此,如果有人能告诉我我的错误,那就太好了。:)

这是我的密码:

class DeleteOrder implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub

        conn = DBConnector.getConnected();

        String selectCustomerId = "select cus_id from customers where lname=? and ";
           String selectCarId = "select car_id from cars where model=?";

           String selectedCustomer = customersCombo.getSelectedItem().toString();
            String selectedCar = carsCombo.getSelectedItem().toString();

        String sql="delete from Orders where " + selectCustomerId + selectCarId;

        try {
            state = conn.prepareStatement(sql);
            state.setString(1, selectedCustomer);
            state.setString(2, selectedCar);
            state.execute();
            getAllDataFromOrders();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }


    }

}//end Delete ORder

你只是在加两个数字,我真的不知道为什么。我认为不是:

String sql=“从订单中删除”+selectCustomerId+selectCarId

你应该写:


String sql=“从订单中删除,其中cus_id=“+selectCustomerId+”和car_id=“+selectCarId

我希望它看起来像这样:
sql=“从订单中删除,其中cus\u id=“+selectCustomerId+”和car\u id=“+selectCarId