我想将数据库中的ArtikelAnzahl
(文章数量)设置为我将从 Java GUI 中获取的术语。
因此 SQL 命令字符串应如下所示:
"update warenliste set Anzahl=Anzahl+"anzahl"where Artikel_ID="+arikel_ID;
哪里:
warenliste
是表格,Anzahl
是应该更新的通信。- 数据库中的文章数量应添加到我们从 GUI 中获取的数量中。
这个命令对吗?我昨天刚学了 SQL,不幸的是我还不擅长它。
public void setArtikelAnzahl(int anzahl, int arikel_ID) {
try {
String query = "update warenliste set Anzahl=Anzahl+"anzahl"where Artikel_ID="+arikel_ID;
rs= st.executeQuery(query);
}
catch(Exception e) {
System.out.println(e);
}
}
最佳答案
SQL部分
如果 artikel_id
和 anzahl
都是数字(并且它是 anzahl
而不是 artikeanzahl),则查询的 SQL 部分似乎没问题
)。
让我们实例化一个假想的元素 1 和数量 27 的语句:
update warenliste set Anzahl=Anzahl+27 where Artikel_ID=1;
如果你测试这个here使用以下模式,它会很好地工作:
create table warenliste (artikel_ID numeric,
bezeichnung varchar(100),
anzahl numeric);
insert into warenliste values (1,"Schraubenzieher", 1050);
insert into warenliste values (2,"Hammer", 10347);
Java部分
但是 Java 部分存在一些问题。首先,您需要更正该语句以使Java代码能够编译。您还需要在结果字符串中添加缺少的空格:
String query = "update warenliste set Anzahl=Anzahl+"+anzahl+" where Artikel_ID="+arikel_ID;
^ ^ ^
由于您对 SQL 还不太熟悉,我建议 display执行之前的 query
字符串。只是为了验证它是否符合您的期望。
现在,如果 ariktel_id 是字符串,而不是数字,您可能必须在变量周围的查询字符串中添加缺少的引号。
这不是必需的,但我建议您在构建查询字符串时,在 SQL 语句中使用大写字母。这将有助于阅读 java 代码,特别是当您将 SQL 字符串与 java 变量混合在一起时,如下所示。
关于java - 这个数据库更新命令的计算是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58571615/