1

我想删除 id = 用户在 Java 中将文本插入 jTextField 的 MySQL 行。我知道我需要使用类似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);
    }
4

2 回答 2

3

将函数编辑为如下内容:

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

然而,有更好的方法来做到这一点。准备好的语句确实更好。如果您确实使用此方法,请确保检查用户的输入。

于 2013-01-04T18:39:46.380 回答
3

你应该做这样的事情。这是使用 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 注入”

于 2013-01-04T18:44:19.570 回答