gpt4 book ai didi

java - 为什么我无法使用准备好的语句来更新数据库?

转载 作者:行者123 更新时间:2023-11-29 11:57:29 26 4
gpt4 key购买 nike

考虑以下代码:

String updatestmt = "UPDATE marketplaces.amazon_merchant_fulfilled_orders SET order_status = ? WHERE amazon_order_id=?;";

Connection conn = connectToDatabase();
PreparedStatement pstInsert = conn.prepareStatement(updatestmt);
pstInsert.setString(1, orderId);
pstInsert.setString(2, status);
try {
int rowsAffected = pstInsert.executeUpdate();
System.out.println("Updated " + rowsAffected + " Line(s).");
...

执行此代码时,rowsAffected 始终为 0

如果我将 updatestmt 更改为:

"UPDATE marketplaces.amazon_merchant_fulfilled_orders SET order_status = '"+status+"' WHERE amazon_order_id='"+orderId+"';"; 并删除 pstInsert.setString 调用代码工作正常。

我的问题是为什么我无法使用准备好的语句来更新我的数据库?

平台:PostgreSQL 9.2 和 Java 7

最佳答案

您设置的参数顺序错误。注意:

UPDATE marketplaces.amazon_merchant_fulfilled_orders
SET order_status = ? WHERE amazon_order_id=?

然后你发送

pstInsert.setString(1, orderId);
pstInsert.setString(2, status);

改变顺序使其工作

pstInsert.setString(1, status);
pstInsert.setString(2, orderId);

关于java - 为什么我无法使用准备好的语句来更新数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14402874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com