gpt4 book ai didi

java - Java 中的 PostgreSQL 用户输入减法

转载 作者:行者123 更新时间:2023-11-29 13:49:44 30 4
gpt4 key购买 nike

我想获取用户输入,然后从表 BOXamount 列 中的一行中减去它。正如您在下面的代码示例中看到的,我使用 扫描仪类 对其进行了编程,因此如果用户键入数字 2,它将从 RED_BOX_LARGE 行中减去 2 BOX 表中的 amount 列。问题是,我要再添加 300 行,而我真的不能将这种 if-statement 执行 300 次,必须有另一种方法,难道没有办法编程吗只需从用户输入的行中减去多少,而无需指定数字。我将 Java 与 PostgreSQL 结合使用。

if(userinput.equals("2")){
String one = "UPDATE BOX SET AMOUNT =
(SELECT AMOUNT FROM BOX WHERE NAME = 'RED_BOX_LARGE') -2 WHERE NAME='RED_BOX_LARGE';";
stmt.executeUpdate(one);
}

这是表格。

      name       |  price  | form_factor | amount
-----------------+---------+-------------+--------
RED_BOX_SMALL | 17.1125 | RED_SMALL | 10
BLUE_BOX_LARGE | 1586.5 | BLUE_LARGE | 10
BLUE_BOX_SMALL | 1324.5 | BLUE_SMALL | 10
GREEN_BOX_LARGE | 1175.25 | GREEN_LARGE | 10
GREEN_BOX_SMALL | 930.5 | GREEN_SMALL | 10
GRAY_BOX_LARGE | 735.25 | GRAY_LARGE | 10
GRAY_BOX_SMALL | 450.5 | GRAY_SMALL | 10
RED_BOX_LARGE | 2120.75 | RED_LARGE | 3
(8 rows)

最佳答案

通常,不建议将 sql 查询字符串分成多个部分,因为过度使用它可能容易出错,但对于孤立的情况,它可能是可以接受的。

因此您可以将查询字符串分成两部分。

  String one = "UPDATE BOX SET AMOUNT = 
(SELECT AMOUNT FROM BOX WHERE NAME =
'RED_BOX_LARGE') - "

   String two = " WHERE NAME='RED_BOX_LARGE';";

通过在它们之间添加用户输入来连接它们之后。

   String query = one + userinput + two;
stmt.executeUpdate(query);

您还可以在单​​个查询字符串中模板化用户输入并使用
public static String format(String format, Object... args)
设置用户输入值。

关于java - Java 中的 PostgreSQL 用户输入减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43034932/

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