Java 数据库删除操作

Java 数据库删除操作,java,sql,Java,Sql,我想在我的数据库上执行一个简单的删除操作,但我的程序变得繁忙,它停止响应。我不知道发生了什么,因为它没有显示错误 private void deleteCustomer(ActionEvent event) { String mName = name.getText(); String mID = id.getText(); Boolean flag = mName.isEmpty() || mID.isEmpty(); if(flag){

我想在我的数据库上执行一个简单的删除操作,但我的程序变得繁忙,它停止响应。我不知道发生了什么,因为它没有显示错误

private void deleteCustomer(ActionEvent event) {
    String mName = name.getText(); 
    String mID = id.getText();


    Boolean flag = mName.isEmpty() || mID.isEmpty(); 
    if(flag){
        Alert alert = new Alert(Alert.AlertType.ERROR); 
        alert.setHeaderText(null);
        alert.setContentText("Please Enter All Fields.");
        alert.showAndWait();
        return;
    }
     String st = "DELETE CUSTOMER WHERE id = '"+ mID +"'" ;
    System.out.println(st);
    if(handler.execAction(st)){
        Alert alert = new Alert(Alert.AlertType.INFORMATION); 
        alert.setHeaderText(null);
        alert.setContentText("Deleted");
        alert.showAndWait();
        //return;
    }else{
        Alert alert = new Alert(Alert.AlertType.ERROR); 
        alert.setHeaderText(null);
        alert.setContentText("Error Occured");
        alert.showAndWait();

    }
}
这是我用来完成任务的方法

 public boolean execUpdate(String query){
    try {
        stmt = conn.createStatement();
        //stmt.executeUpdate(query);
        if(stmt.executeUpdate(query) == 1){
           // JOptionPane.showMessageDialog(null, "data " + message);
            System.out.println("data deleted succefully!!");
        }

        return true; 
    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, "error: "+ e.getMessage(), "error occoured", JOptionPane.ERROR_MESSAGE);
        System.out.println("Exception at execQuery: dataHandler" + e.getLocalizedMessage());
        return false; 
    }finally{
}


public boolean execAction(String query){
    try {
        stmt = conn.createStatement();
        stmt.execute(query);

        return true; 
    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, "error: "+ e.getMessage(), "error occoured", JOptionPane.ERROR_MESSAGE);
        System.out.println("Exception at execQuery: dataHandler" + e.getLocalizedMessage());
        return false; 
    }finally{
}
}

我想你忘了在SQL中添加来自关键字的

String st = "DELETE FROM CUSTOMER WHERE id = '"+ mID +"'" ; 

显示
execAction
的代码,而不是
execUpdate
的代码。请尝试调试您的代码,看看它在哪里暂停,以便缩小范围,谢谢。这是一个愚蠢的错误程序正在工作,但我不能删除第一行。这是特例还是什么?试试mID:
'或id!='然后查找SQL注入和PreparedStatement。