我正在开发一个Java swing应用程序,在用户进行任何更改时,我试图更新PostgreSQL数据库。
表中有四个字段,如果我尝试一次更新一列,它可以正常工作,但是当我使用AND时,它会向我显示以下错误消息
捕获到异常:-org.postgresql.util.PSQLException:错误:和的参数必须是布尔类型,而不是类型字符变化
下面是我用来更新表的代码。

Connection con = DbConnection.getConnect();
Statement stmt = con.createStatement();
String sql = "UPDATE webservice_config set product = ? AND product_cat = ? AND stock = ? where ID=?;";
PreparedStatement pstInsert = con.prepareStatement(sql);
pstInsert.setString(1, product);
pstInsert.setString(2, productCat);
pstInsert.setString(3, stock);
pstInsert.setString(4, "1");
pstInsert.executeUpdate();
con.close();

有什么帮助吗

最佳答案

在具有多个列的表上执行UPDATE时,应使用,分隔每个列,而不是使用AND运算符,因此代码应如下所示:

 String sql = "UPDATE webservice_config set product = ?,product_cat = ?,stock = ? where ID=?;";

PostgreSQL Documentation : SQL-UPDATE
如果第一个条件和第二个条件都为真,则AND运算符将显示一条记录

10-07 22:10