实际上我是 java 和 SQL 的新手,所以也许这将是一个愚蠢的问题,请提前抱歉。我不习惯在一些论坛或smth上写东西。我更喜欢立即寻找答案。无论如何,现在我很无助,我无法在任何地方找到它,因为我不知道要寻找什么,所以我发现这种方式更好。
所以我有几个问题,我将它们分开以便更好地理解。
if (stmt.execute(
"SELECT * FROM products where ID=" + removeName)) {
rs = stmt.getResultSet();
if (!rs.next()) {
m = "ID not found.";
return m;
}
1.(谢谢MARC B)在这段代码中,如果我在我的字段中输入一些文本(不是数字),它会抛出这个异常:SQLException:'where子句'中的未知列'blabla'即使在我的数据库中是ID设置为字符串,到处都是字符串。
2.(解决了我的大脑打开了一段时间)我正在学校做我的项目,它是仓库系统,有一个收银员正在下订单。他正在将产品添加到订单列表中,然后当订单列表完成后(收银员不再添加 - 单击订单),它应该从仓库数据库中删除该产品。我想问一下(再次抱歉,我试图用一些 actionListeners 或数组或其他东西来解决它,但正如我所说我不是那么熟练)是否有任何可能性来保存订单列表中的数据(ID,数量)(到一些变量或某处)以便稍后从数据库中删除它?我虽然将它保存到数组中会很好,但是每个按钮单击添加它都应该增加数组的索引,但我不知道如何增加 i(可能是 actionListeners)或者一些更好的方法。谢谢你为我做的一切。
while (rs.next()) {
String entry = rs.getString(1);
String entry1 = rs.getString(2);
int entry2 = rs.getInt(3);
//check if there are enough products in warehouse
if(quantity>entry2){
m+="There are not enough product(s) with ID: "+entry1+"\nin the warehouse.\n";
return m;
}
//add to the order list
m += "Product name: " + entry + "\n"
+ "ID: " + entry1 + "\n"
+ "Quantity: " + quantity + "\n" + "\n";
}
通过在 entry1 和 entry2 初始化后添加到 while 循环来编辑代码:
a.add(new Product(entry1, entry2));
虽然它被声明为 ArrayList:
ArrayList<Product> a=new ArrayList<>();
类产品看起来像这样:
public class Product {
public String name, ID;
public int quantity;
public Product(String ID, int quantity){
this.ID=ID;
this.quantity=quantity;}
public Product(String name, String ID, int quantity){
this.name=name;
this.ID=ID;
this.quantity=quantity;}
public String getID(){
return ID;}
public int getQuantity(){
return quantity;}
}
希望编辑会有所帮助。也许这是一个太大的问题,也许应该以某种方式进行划分,但正如我所说,我不是在使用论坛来询问,只是为了寻找每一个答案,我将不胜感激(也感谢批评我的帖子)。再次抱歉,非常感谢!