删除数据库中的选定行

时间:2013-10-28 14:56:42

标签: java jdbc

为什么这不适合我?我一直收到错误:

java.sql.SQLException: Can not issue data manipulation statements with executeQuery().

我的代码:

private void speler_deleteActionPerformed(java.awt.event.ActionEvent evt) {
    int row = tbl_spelers.getSelectedRow();
    int SpelerID = (int) tbl_spelers.getValueAt(row, 0);
    Speler speler = new Speler();

    try {
    DBClass databaseClass = new DBClass();
    Connection connectie = databaseClass.getConnection();
    // NOG ONVEILIG - WACHTEN OP DB SELECT IN DBCLASS!!!
    String deleteQry = "DELETE FROM `Speler` WHERE SpelerID = " + SpelerID + ";";
    ResultSet rs = databaseClass.GetFromDB(deleteQry);
    } catch (SQLException ex) {
        Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
    }
}

4 个答案:

答案 0 :(得分:4)

您必须使用excuteUpdate()进行删除

excuteUpdate()的文档

  

执行给定的SQL语句,该语句可以是INSERT,UPDATE或DELETE语句,也可以是不返回任何内容的SQL语句,例如SQL DDL语句。

executeQuery()

的位置
  

执行给定的SQL语句,该语句返回单个ResultSet对象。

答案 1 :(得分:0)

jdbc的executeQuery()方法是选择记录,可以使用executeUpdate()进行更新操作。有关每种方法的目的/意图,请参阅the documentation

boolean execute()
     

执行此PreparedStatement对象中的SQL语句,可以执行此操作   是任何一种SQL语句。

ResultSet executeQuery()
     

在此PreparedStatement对象中执行SQL查询并返回   查询生成的ResultSet对象。

int executeUpdate()
     

在此PreparedStatement对象中执行SQL语句   必须是SQL INSERT,UPDATE或DELETE语句;或SQL语句   什么都不返回,比如DDL语句。

答案 2 :(得分:0)

首先,您需要使用excuteUpdate()进行删除,然后使用

String deleteQry = "DELETE FROM `Speler` WHERE SpelerID = " + SpelerID + ";";

从查询中删除semi-colon和“`”,其中包含表名“Speler”。

答案 3 :(得分:0)

您需要使用 executeUpdate()

执行查询

此外,您只需稍微调整字符串deleteQry,如下所示:

String deleteQry = "DELETE FROM Speler WHERE SpelerID = " + SpelerID;

希望这会有所帮助......