次のコードを検討してください。
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