Java参数索引超出范围(2>参数个数,即1)

时间:2014-04-04 02:27:37

标签: java

我有以下功能:

public void updateItem(String id, String name, String quantity, String price){
    String query = "UPDATE items SET name = '?', price = ?, quantity = ? WHERE id = ?";
    try(PreparedStatement st = conn.prepareStatement(query)){
        st.setString(1, name);
        st.setString(2, quantity);
        st.setString(3, price);
        st.setString(4, id);
        JOptionPane.showMessageDialog(null, "Item Updated");
    }catch(Exception ex){
        JOptionPane.showMessageDialog(null, ex);
    }
}

但每当我尝试运行它时,它会给我以下错误:

Parameter Index Out Of Range (2 > number of parameters, which is 1)

我正在阅读这个错误,它与问号有关,但我不确定错误究竟在哪里。如果有人可以帮助我,我会非常感激。

这是我的第二篇文章,如果这在某种程度上不正确,那就很抱歉。

再次感谢大家!

1 个答案:

答案 0 :(得分:1)

您需要进行两项更改(我可以看到),

name = '?'

应该是

name = ?

并且,您实际上并未在发布的代码中执行您的陈述。