You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复JavaFX注册方法中的No value specified for parameter 2错误

你的代码有两个关键问题导致了这个SQL异常:

1. INSERT语句语法完全错误

你写的SQL字符串只列了第一个字段,未闭合括号且VALUES前多了逗号,正确的INSERT语句需要完整列出所有要插入的字段,语法格式必须严谨。

原错误语句:

String insert = "INSERT INTO " + Const.USERS_TABLE + "(" + Const.USERS_FIRSTNAME + "," + "VALUES(????)";

修正后(需确保Const类中存在对应姓氏、邮箱、密码的常量):

String insert = "INSERT INTO " + Const.USERS_TABLE + "(" + 
    Const.USERS_FIRSTNAME + "," + 
    Const.USERS_LASTNAME + "," + 
    Const.USERS_EMAIL + "," + 
    Const.USERS_PASSWORD + 
    ") VALUES(?,?,?,?)";

注意字段数量要和VALUES中的占位符?数量完全对应。

2. PreparedStatement参数索引重复

你所有setString方法都用了索引1,这会导致只有第一个参数被赋值,第2、3、4个参数完全未设置——这就是报错"No value specified for parameter 2"的直接原因。

原错误代码:

preparedStatement.setString(1,firstName);
preparedStatement.setString(1,lastName);
preparedStatement.setString(1,email);
preparedStatement.setString(1,password);

修正后需按占位符顺序对应索引(从1开始递增):

preparedStatement.setString(1, firstName);
preparedStatement.setString(2, lastName);
preparedStatement.setString(3, email);
preparedStatement.setString(4, password);

完整修正后的方法代码

public void signUpUser(String firstName, String lastName, String email, String password) {
    String insert = "INSERT INTO " + Const.USERS_TABLE + "(" + 
        Const.USERS_FIRSTNAME + "," + 
        Const.USERS_LASTNAME + "," + 
        Const.USERS_EMAIL + "," + 
        Const.USERS_PASSWORD + 
        ") VALUES(?,?,?,?)";

    try {
        PreparedStatement preparedStatement = getDbConnection().prepareStatement(insert);
        preparedStatement.setString(1, firstName);
        preparedStatement.setString(2, lastName);
        preparedStatement.setString(3, email);
        preparedStatement.setString(4, password);

        preparedStatement.executeUpdate(); // 增删改操作推荐用executeUpdate,返回受影响行数更贴合语义
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

内容的提问来源于stack exchange,提问作者sqlcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 22:13:41