其實我是新手在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;}
}
希望編輯將有所幫助。 也許這是一個太大的問題,也許它應該以某種方式劃分,但正如我告訴我,我不使用論壇來問只是爲了尋找每個答案,我會很不情願(也是對我的帖子的評論)。再次抱歉,非常感謝!
是的,但它必須被解釋爲對字段的引用,因爲我的程序正在查找數據庫中的產品,其ID與字段中輸入的值相同。無論如何,謝謝你,如果我說的是錯誤的告訴我。 – 2013-04-28 02:35:06
是嗎?如果將一個字符串插入到一個sql查詢中並且該字符串未被引用,那麼數據庫引擎將把它解釋爲一個字段名稱。 'product_type = toy'將使數據庫引擎在你的表中尋找名爲「玩具」的字段。但是如果你在'where product_type ='toy''的地方做數據庫引擎掃描表,看看錶中任何記錄的product_type字段中是否出現「玩具」這個詞。 – 2013-04-28 02:38:29
現在我明白了非常感謝! – 2013-04-28 02:40:33