MySQL 结果集 - 未为参数 1 指定值
Posted
技术标签:
【中文标题】MySQL 结果集 - 未为参数 1 指定值【英文标题】:MySQL Result Set - No value specified for parameter 1 【发布时间】:2015-01-06 21:46:00 【问题描述】:我不知道这个错误是什么意思或如何解决它。我正在尝试从我的一个数据库中检索一些数据,但一直遇到以下错误消息。
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)
【问题讨论】:
您缺少参数,错误信息也很清楚地说明了这一点。你没有设置参数,google错误来解决这类问题... java.sql.SQLException: No value specified for parameter 5, but the string length is 4, not 5 的可能重复项 @NoaNoNym 尽管该问题有相同的错误,但它不是完全相同的:在该问题中,用户还尝试对对象名称进行参数化 【参考方案1】:PreparedStatement
需要填写参数
preparedStatement.setLong(1, someIdentifier)
【讨论】:
【参考方案2】:可能是因为你没有为你的请求设置参数:
SELECT * FROM mydatabase WHERE TickerID= ?
你必须添加:
preparedStatement.setString(1, "youUserIdValue");
在执行查询之前。
你也可以使用命名参数:
preparedStatement = connect
.prepareStatement("SELECT * FROM mydatabase "
+ " WHERE TickerID=:userID");
preparedStatement.setString("userID", "youUserIdValue");
【讨论】:
JDBC 没有命名参数,尽管供应商特定的实现可能有这个,所以你的第二个例子不能通过标准java.sql.PreparedStatement
接口工作以上是关于MySQL 结果集 - 未为参数 1 指定值的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)使用rotate参数指定进行正交旋转提取因子使用nfactors参数指定抽取的因子个数fa函数因子分析结果解读
R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)使用rotate参数指定进行斜交旋转提取因子使用nfactors参数指定抽取的因子个数fa函数因子分析结果解读