gpt4 book ai didi

java - 如何处理您知道其中只有一条记录的 ResultSet

转载 作者:行者123 更新时间:2023-11-29 08:10:41 28 4
gpt4 key购买 nike

我正在为一项家庭作业而苦苦挣扎,并且被一些 SQL 查询挂断了。

我的查询是查询库存数据库以获取某些商品的数量。在给定主键的情况下,查询从表中请求名称为 quantity_in_stock 的列。

我已经初始化了一些准备好的语句。这是我在这里使用的:

stmtFindColumn = Database.getConnection().prepareStatement(String.format("select ? from %s where %s = ?",
INVENTORY_TABLE_NAME, SKU) );

现在调用一个单独的方法。我向它传递了一个静态常量 QTY_IN_STOCK,它被定义为“quantity_in_stock”和商品的 SKU 编号,这是表中的主键。

private int getIntegerFromTable(String column, String key) {

int toReturn = 0;

try {
// Complete the prepared statement
stmtFindColumn.setString(1, column);
stmtFindColumn.setString(2, key);

ResultSet result = stmtFindColumn.executeQuery();
toReturn = result.getInt(column);

} catch (SQLException e) {
LOG.error(e.getMessage());
e.printStackTrace();
}
return toReturn;
}

当我运行查询时,我收到一个 sql 异常,它告诉我:无效的列名 quantity_in_stock。

我尝试使用 while 循环处理 result.next() 并得到相同的错误。当您知道只返回一条记录时,我找不到任何有关如何正确获取结果的示例。

帮助!

编辑:好的,我发现我的问题的一部分是我没有得到一个结果集,而我应该期望得到一个结果集。有什么想法吗?

更新:我已经测试了我的代码,使用普通语句和纯字符串查询代替,它工作得很好。所以问题出在我对准备好的语句的使用上。有人可以检查我是否在使用吗?通配符正确吗?谢谢!

最佳答案

据我所知,列名可能不是参数...

关于java - 如何处理您知道其中只有一条记录的 ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8283786/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com