我想将数据库中的ArtikelAnzahl
(文章数)设置为术语,该术语将从Java GUI中获得。
因此,SQL命令字符串应类似于:
"update warenliste set Anzahl=Anzahl+"anzahl"where Artikel_ID="+arikel_ID;
其中:
warenliste
是表,Anzahl
是应该更新的公共区。此命令正确吗?我昨天才刚刚学习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);
}
}
答案 0 :(得分:0)
如果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代码得以编译。您还需要在结果字符串中添加缺少的空格:
String query = "update warenliste set Anzahl=Anzahl+"+anzahl+" where Artikel_ID="+arikel_ID;
^ ^ ^
由于您对SQL还不太熟悉,建议您在执行之前先display query
字符串。只是为了验证它是否符合您的期望。
现在,如果ariktel_id
是字符串而不是数字,则可能必须在查询字符串中的变量周围添加缺少的引号。
不是必需的,但是我建议在构建查询字符串时,在SQL语句中使用大写字母。这将有助于读取Java代码,尤其是当您将SQL字符串与Java变量混合在一起(例如此处)时。