0

实际上我是 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;}


}

希望编辑会有所帮助。也许这是一个太大的问题,也许应该以某种方式进行划分,但正如我所说,我不是在使用论坛来询问,只是为了寻找每一个答案,我将不胜感激(也感谢批评我的帖子)。再次抱歉,非常感谢!

4

1 回答 1

0

基本 SQL:

SELECT ...
FROM sometable
WHERE somefield=somevalue, otherfield='othervalue'

somevalue在上面的查询中没有引用,因此它将被解析/解释为对表中 FIELD 的引用。相比之下,'othervalue'带有单引号 ( ') 的 , 被解释为字符串。

于 2013-04-28T02:27:42.117 回答