当前位置: 首页 > 知识库问答 >
问题:

MySQL结果集-没有为参数1指定值

廖弘量
2023-03-14

我不知道这个错误意味着什么,也不知道如何修复它。我试图从我的一个数据库中检索一些数据,但一直遇到下面的错误消息。

preparedStatement = connect
            .prepareStatement("SELECT * FROM mydatabase "
                        + " WHERE TickerID=?");
            resultSet = preparedStatement.executeQuery(); //where it says the error is, line 132
            while(resultSet.next())
            {
                aIDTA = resultSet.getInt("AccountID");
                nameTA = resultSet.getString("Name");
                CashBalance = resultSet.getDouble("CashBalance");
                TradeFeeBuy = resultSet.getDouble("TradeFeeBuy");
                TradeFeeSell = resultSet.getDouble("TradeFeeSell");
                AssetsBalance = resultSet.getDouble("AssetsBalance");
            }



Exception in thread "main" java.sql.SQLException: No value specified for parameter 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:935)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:924)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:870)
    at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2281)
    at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2261)
    at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2191)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2004)
    at BuyAndSell.BuyAndSell(BuyAndSell.java:132)
    at Main.main(Main.java:21)

共有2个答案

常培
2023-03-14

这可能是因为您没有为请求设置参数:

SELECT * FROM mydatabase WHERE TickerID= ?

你必须补充:

preparedStatement.setString(1, "youUserIdValue");

之前执行查询。

您还可以使用命名参数:

preparedStatement = connect
        .prepareStatement("SELECT * FROM mydatabase "
                    + " WHERE TickerID=:userID");
preparedStatement.setString("userID", "youUserIdValue");
赏阳嘉
2023-03-14

您需要在准备语句中填充参数

preparedStatement.setLong(1, someIdentifier)
 类似资料:
  • 问题内容: 我在执行应用程序时遇到以下错误: java.sql.SQLException:未为参数1指定值 这是什么意思? 我在岛上的清单: 我在托管bean中获得的用户组列表: 我的JSF页面: 我的数据表能够显示数据库中的组列表。但是,当我在数据表中选择单个行时,应用程序需要一些时间才能与数据库建立连接以显示所选结果。 另外,奇怪的是,该应用程序能够比其他应用程序更快地显示某些选定的结果。与我

  • 我有一个包含1600万条记录的MySql表,由于一些迁移工作,我正在读取整个MySql表。 以下代码用于在MySql中流式传输大型结果集 但这是一次流式传输一个结果,这是否意味着我们每行都命中MySql服务器 在使用流时,我们可以设置如下语句:setFetchSize(1000); 我想减少到服务器的往返次数,同时流式传输大型 ResultSet

  • 在这种情况下,我的查询工作正常,我已经在mysql上对它们进行了测试。 首先,我有一个自定义查询函数,在MySQLDatabase类中如下所示 然后我有一个类叫用户使用MYSQL类 最后,我以这种方式调用index.php中的方法 以下是一些事实:1。-当我插入数据库中存在的id值时,会出现此警告 警告:mysqli_fetch_array()要求参数1为给定数组的mysqli_结果 2.-当我插

  • 问题内容: 注册到我的Grails应用程序后,用户会收到一封带有确认链接的电子邮件。单击该链接,将她带到相应的“启用”操作。 这完美无瑕。但是,现在似乎有一个非常特定的令牌出现错误,该令牌的user.save()失败了: 堆栈跟踪: 请注意,我可以在同一运行实例中创建其他用户-但是(到目前为止)该错误仅在该代码中发生。 关于如何解决这个问题的任何想法? 使用的版本: PostgreSQL:9.1b

  • 我已经使用(MySQLi过程)将我的php分成了2/3部分:第一部分专门用于db(open、execute、Total Row、infected Row、Close…),第二部分专门用于其他功能。以下是一个例子: db.php(第一个) 和functions.php(第二个) 当我尝试执行脚本时,我得到了以下警告错误: 如果您查看此函数以获取行数,则该参数将在函数内部进行测试,sql语句已在mys