我是数据库和 sql 方面的新手,只是想用 Java 解决所有问题,但我遇到了一些小问题,我正在尝试删除数据库中的一条记录,其 ID 作为方法给出参数,像这样,但它不起作用
@Override
public void removeCustomer(int number) {
Statement statement = null;
try {
statement = connection.createStatement();
statement.executeUpdate("DELETE FROM Customers WHERE id='number'");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try{
if(statement != null) statement.close();
} catch (SQLException e ) {
e.printStackTrace();
}
}
}
它确实有效,当我在 SQL 查询中写入“... WHERE id='2'”时; 但我希望能够从方法参数传递数字。 有人可以帮忙吗?
最佳答案
您可以使用 PreparedStatement像这样:
try(PreparedStatement stm = connection.createStatement("DELETE FROM Customers WHERE id=?")){
stm.setInt(1, number);
stm.executeUpdate();
}
//.. catch and finally
注意
It does work, when I write in SQL query " ... WHERE id='2'";
如果您的 id 是 varchar
,您可以使用 setString
而不是 setInt
将字符串传递给语句,但我不' 建议使用字符串作为 id
关于java - SQL 查询有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58911722/