2013-04-28 61 views
0

其實我是新手在java和SQL中,所以也許這將是愚蠢的問題提前抱歉。我不習慣在一些論壇上寫或不喜歡。我更願意立即回答。無論如何,現在我很無奈,我無法找到它,因爲我不知道該找什麼,所以我發現這種方式更好。意外的SQL選擇異常

所以我沒有幾個問題,我會將它們分開以便更好地理解。

if (stmt.execute(
         "SELECT * FROM products where ID=" + removeName)) { 
        rs = stmt.getResultSet(); 
    if (!rs.next()) { 
         m = "ID not found."; 
         return m; 
        } 

1.(解決THANK YOU MARC B)在此代碼,如果我把我的領域的一些文本(而不是數),它將引發我此異常:的SQLException:在「where子句」未知列「布拉布拉」即使在我的數據庫中ID被設置爲String,並且在任何地方都是String。

2.(解決了我的大腦開啓了一段時間)我正在做我的項目上學,這是倉庫系統,有一個收銀員正在下單。他將產品添加到訂單清單中,然後當訂單清單完成時(收銀員不會再添加 - 點擊訂單),它應該從倉庫數據庫中刪除該產品。我想問(再次對不起,我嘗試用一​​些actionListeners或數組或其他東西解決它,但正如我告訴我不那麼熟練),如果有任何可能性來保存數據(Id,數量)一些變量或某處)以後從數據庫中刪除它?我雖然這將是很好的保存到數組,但每個按鈕點擊添加它應該增加數組的索引,但我不知道如何增加我(也許這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"; 
      } 

編輯代碼加入到而取值範和ENTRY2後循環進行初始化:

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;} 


} 

希望編輯將有所幫助。 也許這是一個太大的問題,也許它應該以某種方式劃分,但正如我告訴我,我不使用論壇來問只是爲了尋找每個答案,我會很不情願(也是對我的帖子的評論)。再次抱歉,非常感謝!

回答

0

基本SQL:

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

在上面的查詢somevalue不是引用,所以它會被解析/解釋爲表中的一個參照本發明的技術領域。相比之下,'othervalue'與單引號(')被拼成字符串。

+0

是的,但它必須被解釋爲對字段的引用,因爲我的程序正在查找數據庫中的產品,其ID與字段中輸入的值相同。無論如何,謝謝你,如果我說的是錯誤的告訴我。 – 2013-04-28 02:35:06

+0

是嗎?如果將一個字符串插入到一個sql查詢中並且該字符串未被引用,那麼數據庫引擎將把它解釋爲一個字段名稱。 'product_type = toy'將使數據庫引擎在你的表中尋找名爲「玩具」的字段。但是如果你在'where product_type ='toy''的地方做數據庫引擎掃描表,看看錶中任何記錄的product_type字段中是否出現「玩具」這個詞。 – 2013-04-28 02:38:29

+0

現在我明白了非常感謝! – 2013-04-28 02:40:33