gpt4 book ai didi

java - 参数索引超出范围 (0 < 1)

转载 作者:行者123 更新时间:2023-12-01 16:21:58 27 4
gpt4 key购买 nike

我知道这个问题在 stackoverflow 上已经被问过很多次了,但是我仍然无法查明我的代码无法工作的确切原因。

这是查询:

String QUERY = "INSERT INTO orders (user, product_id, final_price, key_id) VALUES (?, ?, ?, ?)"; 

使用与失败函数相同的参数手动运行查询效果非常好。

这是准备好的语句:

// ...more code up here...
PreparedStatement preparedStatement = connectionManager.databaseConnection.prepareStatement(QUERY);

preparedStatement.setInt(1, user_id);
preparedStatement.setInt(2, product_id);
preparedStatement.setFloat(3, _finalprice);
// ...more code down there...
preparedStatement.setInt(4, _keyid);

我收到的错误如下:

java.sql.SQLException: Parameter index out of range (0 < 1 ).

我用相同的技术完成了其他几个插入,它们都完美地工作,我开始认为我正在使用的 mysqlconnector (mysql-connector-java-8.0.19) 有一些问题。

上下文的完整代码:

private static boolean assignProduct(int product_id, int user_id)
{
String QUERY = "INSERT INTO orders (user, product_id, final_price, key_id) VALUES (?, ?, ?, ?)";

float _finalprice = 0;
int _discount = 0;
int _keyid = 0;

if(product_id <= 0 || user_id <= 0) {return false;}

Product _p;
try {
_p = Product_utils.productByID(product_id);

if(_p != null)
{
_finalprice = _p.getPrice();
_discount = _p.getDiscount();

if(_discount > 0)
{
_finalprice = _finalprice - (_finalprice * _discount / 100);
}
}else { return false;}

PreparedStatement preparedStatement = connectionManager.databaseConnection.prepareStatement(QUERY);


preparedStatement.setInt(1, user_id);
preparedStatement.setInt(2, product_id);
preparedStatement.setFloat(3, _finalprice);

_keyid = retriveKey(product_id);

if(_keyid == 0) { return false; }

preparedStatement.setInt(4, _keyid);

if(preparedStatement.executeUpdate() == 1) {return true;} else {return false;}

} catch (SQLException e) { System.out.println(e.toString()); return false;}
}

最佳答案

通过将我的 mysql 连接器升级到 8.0.20 解决

关于java - 参数索引超出范围 (0 < 1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62245906/

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