SQL 异常中参数索引超出范围:原因及解决方案
遇到异常“java.sql.SQLException: Parameter index out of数据库插入期间“范围(1 > 参数数量,为 0)”可能会令人沮丧。当您尝试在准备好的语句中设置参数值,而 SQL 查询缺少这些参数相应的占位符 (?) 时,会发生此错误。
错误原因:
当您尝试在PreparedStatement上使用setXxx()方法,但SQL查询字符串没有指定参数所需的占位符时,会出现此错误index.
错误代码示例:
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); // This will fail. preparedStatement.setString(2, val2); preparedStatement.setString(3, val3);
解决方案:
要解决此问题,您需要修改 SQL 查询字符串以包含您想要的所有参数的占位符 (?)
更正代码示例:
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); preparedStatement.setString(2, val2); preparedStatement.setString(3, val3);
注意:
其他信息:
以上是为什么我的 Java 代码会抛出'参数索引超出范围”SQL 异常?的详细内容。更多信息请关注PHP中文网其他相关文章!