gpt4 book ai didi

Java 参数索引超出范围(2 > 参数数量,即 1)。”

转载 作者:行者123 更新时间:2023-11-30 03:25:42 24 4
gpt4 key购买 nike

我尝试使用 java swing 在 mySQL 数据库中插入一些数据!但我收到错误

java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1).

这是显示错误的 java 代码:

public void saveData(String data) {
try {
conn = MySQL_Connect.ConnectDb();
String sql = "insert into parameterdata(stn_number ,time_received ,temperature_value "
+ ",ph_value ,moisture_value) values(?,?,?,?,?)";
statement = conn.prepareStatement(sql);
statement.setInt(1, readStationNumber());
statement.setString(2, data.substring(49, 50));
statement.setString(3, data.substring(49, 50));
statement.setString(4, data.substring(49, 50));
statement.setString(5, data.substring(49, 50));
statement.execute();
System.out.println("Successfully saved!");
Thread.sleep(1000);

} catch (SQLException | InterruptedException e) {
System.out.println("saveData() error: " + e);
}
}

谁能告诉我错误的原因是什么?

最佳答案

使用

try (PreparedStatement statement = conn.prepareStatement(sql)) {
...
statement.executeUpdate();
...
}

也就是说,该语句必须在某个时候关闭,并且最好不要保留重用全局变量。一个专用的也许是final的PreparedStatement就可以了。

也许并行执行代码改变了你脚下的语句;重新分配给语句

关于Java 参数索引超出范围(2 > 参数数量,即 1)。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30299036/

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