繁体   English   中英

从哪里删除ID ='用户插入的文本'?

[英]DELETE FROM where ID = 'user inserted text'?

我想删除id =用户在Java中的jTextField中插入文本的MySQL行。 我知道我需要使用txtGebruikersID.getText();类的东西txtGebruikersID.getText(); 但不确定如何正确组合它们,以便当有人在JTextField(txtGebruikersID)中插入25之类的值时,25的值将到达25所在的位置:

query = "delete from gebruiker where gebruiker_ID = 25";

我在QueryManager.java中使用的代码:

public void removeGebruiker() {
        String query;
        query = "delete from gebruiker where gebruiker_ID = 25";
        dbmanager.insertQuery(query);
    }

JTextField称为txtGebruikersID

我在userPanel.java中使用的代码:

private void removeUserActionPerformed(java.awt.event.ActionEvent evt) {

        WinkelApplication.getInstance().getQueryManager().removeGebruiker();
        JOptionPane.showMessageDialog(null, "Gebruiker is verwijderd", "Gebruiker", JOptionPane.INFORMATION_MESSAGE);
    }

你应该做这样的事情。 这是使用sqls的首选方法

query = "delete from gebruiker where gebruiker_ID = ?";
PreparedStatement st = con.prepareStatement(query); // con is active connection
st.setInt(1,Integer.parseInt(txtGebruikersID.getText()));

什么是SQL注入”

将函数编辑为如下所示:

public void removeGebruiker(String gebruiker_id) {
    //Some checks here perhaps
    String query;
    query = "delete from gebruiker where gebruiker_ID = " + gebruiker_id;
    dbmanager.insertQuery(query);
}

假设您有一个小组,

WinkelApplication.getInstance().getQueryManager().removeGebruiker(TEXTFIELDNAMEHERE.getText());

如果用户在文本字段中输入12,则结果查询将为:

delete from gebruiker where gebruiker_ID = 12

但是,有更好的方法可以做到这一点。 准备好的语句确实更好。 如果确实使用此方法,请确保检查用户的输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM