Java SQLException,参数5没有值

Java SQLException,参数5没有值,java,mysql,Java,Mysql,我正在使用我构建的UI获取输入,并使用MySQL在本地存储数据。但是,当我使用MySQL insert函数时,我遇到了以下错误: java.sql.SQLException: No value specified for parameter 5 我只有四个输入字段,表中有四列;然而,我的调试器说我有七个值参数。以下是Insert语句: private static final String GLInsert = "INSERT INTO gl_maint(GL_MAINT_NUM, GL_MA

我正在使用我构建的UI获取输入,并使用MySQL在本地存储数据。但是,当我使用MySQL insert函数时,我遇到了以下错误:

java.sql.SQLException: No value specified for parameter 5
我只有四个输入字段,表中有四列;然而,我的调试器说我有七个值参数。以下是Insert语句:

private static final String GLInsert = "INSERT INTO gl_maint(GL_MAINT_NUM, GL_MAINT_NAME, GL_TYPE, BAL_FORWARD)"
        + "VALUES(?, ?, ?, ?) ON DUPLICATE KEY UPDATE "
        + "GL_MAINT_NAME = ?, GL_MAINT_TYPE = ?, BAL_FORWARD = ?";
以及编制报表的方法:

public void InsertGL(String ANstr, String ANAstr, String AIstr, double balfor) {
    try {
        conn = DriverManager.getConnection(ConnCheck, user, password);
        GL_List = FXCollections.observableArrayList();
        st = conn.prepareStatement(GLInsert);
        st.setString(1, ANstr);
        st.setString(2, ANAstr);
        st.setString(3, AIstr);
        st.setDouble(4, balfor);
        st.executeUpdate();
        conn.close();
    } catch (SQLException ex) {

        Logger.getLogger(GLMaintAcct.class.getName()).log(Level.SEVERE, null, ex);
    }
}

问题是根据此查询,您有
7个
参数:

   "INSERT INTO gl_maint(GL_MAINT_NUM, GL_MAINT_NAME, GL_TYPE, BAL_FORWARD)"
    + "VALUES(?, ?, ?, ?) ON DUPLICATE KEY UPDATE "
    + "GL_MAINT_NAME = ?, GL_MAINT_TYPE = ?, BAL_FORWARD = ?";
但您只分配了
4
值,如下所示:

     st.setString(1, ANstr);
     st.setString(2, ANAstr);
     st.setString(3, AIstr);
     st.setDouble(4, balfor);
您应该添加其他类似的
3
值,提供它们的
类型

     st.setString(5, value5);
     st.setDouble(6, value6);
     st.setString(7, value7);

您的查询中有7个
,您应该提供7个参数。
“我只有四个输入字段”
-再次计算它们。。。