Java SQLException,参数5没有值
我正在使用我构建的UI获取输入,并使用MySQL在本地存储数据。但是,当我使用MySQL insert函数时,我遇到了以下错误: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
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个参数。“我只有四个输入字段”
-再次计算它们。。。