为什么这不适合我?我一直收到错误:
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);
}
}
答案 0 :(得分:4)
您必须使用excuteUpdate()
进行删除。
的位置执行给定的SQL语句,该语句可以是INSERT,UPDATE或DELETE语句,也可以是不返回任何内容的SQL语句,例如SQL DDL语句。
执行给定的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;
希望这会有所帮助......