我在使用executeUpdate方法进行数据库删除操作时出现报错:
Can not issue data manipulation statements with executeQuery().
解决方法是在使用update、insert、delete等sql更新语句时应该用execute()方法,否则会出现上述报错。
execute方法返回值为布尔类型,如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回false。
所以在下述代码的if条件中我添加了!
try {
Dbop dbop=new Dbop();
String sql="delete from message where tname='"+Args.name+"' ";
boolean k=dbop.delete(sql);
if(!k)
{
JOptionPane.showMessageDialog(null, "删除成功", "提示", JOptionPane.INFORMATION_MESSAGE);
new Main().mainJM();
jFrame4.dispose();
}
else {
JOptionPane.showMessageDialog(null, "删除失败", "提示", JOptionPane.INFORMATION_MESSAGE);
}
} catch (Exception e2) {
// TODO: handle exception
System.out.println(e2.getMessage());
}
这里是数据库操作类中的删除方法
public boolean delete(String sql) {
boolean k = false;
try {
Class.forName(driver);
try {
connection=DriverManager.getConnection(url,user,password);
statement=connection.createStatement();
k=statement.execute(sql);
try {
if (resultSet!=null) {
resultSet.close();
}
if (statement!=null) {
statement.close();
}
if (connection!=null) {
connection.close();
}
} catch (Exception e) {
// TODO: handle exception
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return k;
}