我有两个表,ordertable(用户用来添加订单和计算)和产品,其中包含某些产品的每单位价格。当用户按下计算按钮时理论上应该发生的是用户输入的数量将乘以他们销售的产品的成本。该查询可以在mysql控制台上运行,因此我可以尝试将其输入到文本字段中。
以下是我的查询。
public void calculateOrder(ActionEvent event){
String total = totalBox.getText();
String queryUpdate="UPDATE ordertable o JOIN product p ON p.productID = o.productID set o.total = o.amount * p.cost";
String updateBox="SELECT total FROM ordertable";
try{
query=c.prepareStatement(queryUpdate);
query=c.prepareStatement(updateBox);
query.setString(1, total);
//query.setString(2, productID);
query.execute();
query.close();
rs.close();
Alert confirmation = new Alert(Alert.AlertType.CONFIRMATION, "Calculated");
confirmation.show();
}
catch(SQLException e){
System.out.println(e);
}
}
以下是错误。 java.sql.SQLException:参数索引超出范围(1>参数个数,为0)。
答案 0 :(得分:1)
我相信您的查询存在问题。如果我在您的使用中正确回想起来,嵌套查询中的o.quantity是未知的。尝试按如下方式重新格式化:
UPDATE ordertable o
INNER JOIN products p
ON p.productionID = o.productionID
set o.cost = o.quantity * p.price