我想通过使用 PreparedStatement 使用 Java 应用程序更新我的 MySQL 数据库中的多列数据,但我不知道该怎么做。
更新查询代码如下:
String s = "UPDATE items SET name =" + u.getName() + ",category="
+ u.getCategory() + ", price=" + u.getPrice()
+ " ,qunatity=" + u.getQuantity() + " WHERE id = '"
+ u.getId() + "'; ";
不不不不!
不要通过连接字符串来构建 SQL 语句。我以为我们很久以前就已经解决了这个问题。这是一种非常不好的做法,也是一种非常会产生错误并让巨大安全漏洞进入您的应用程序的好方法。通过连接字符串创建 SQL 语句是灾难的根源,也是需要在养成习惯之前改掉的坏习惯。
Use prepared statements - 从长远来看,它将为您省去很多痛苦。
例如,将你写的内容与此进行比较:
PreparedStatement update = connection.prepareStatement
("UPDATE items SET name = ?, category = ?, price = ?, quantity = ? WHERE id = ?");
update.setString(1, u.getName());
update.setString(2, u.getCategory());
...
update.setInt(5, u.getId());
update.executeUpdate();
当然,它稍微冗长一些,但可读性更高且更不容易出错 - 更不用说 JDBC 会处理那些使 SQL injection 变得讨厌的引用问题。可能。