其实我是新手在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