我已经能够PostgreSQL的链接到Java。 我已经能够在表中显示的所有记录,但我无法执行删除操作。
这里是我的代码:
con = DriverManager.getConnection(url, user, password);
String stm = "DELETE FROM hostdetails WHERE MAC = 'kzhdf'";
pst = con.prepareStatement(stm);
pst.executeUpdate();
请注意,MAC是一个字符串字段,并用大写字母表示。 该字段不存在于表中。
我正的错误:
重度:ERROR:列“陆委会”不存在
当谈到PostgreSQL和用大写字母实体名称(表,列等),你需要将其置于“”“逃离”这个词。 请参考文档关于这个问题。 所以,你的例子是这样写的:
String stm = "DELETE FROM hostdetails WHERE \"MAC\" = 'kzhdf'";
在一个侧面说明,考虑到你正在使用预处理语句,你不应该值直接在SQL语句中设置。
con = DriverManager.getConnection(url, user, password);
String stm = "DELETE FROM hostdetails WHERE \"MAC\" = ?";
pst = con.prepareStatement(stm);
pst.setString(1, "kzhdf");
pst.executeUpdate();